支持向量机 SVM:核技巧与最大间隔分类
支持向量机:核技巧与最大间隔分类
支持向量机(Support Vector Machine, SVM)是一种经典的监督学习算法,在文本分类、图像识别、生物信息学等领域表现出色。它的核心思想是寻找一个决策边界,使得两类样本之间的间隔最大化。当数据线性不可分时,通过核技巧将其映射到高维空间,实现非线性分类。
1. 最大间隔分类器:线性可分情况
对于二分类问题,给定训练样本 (x_i, y_i),其中 y_i ∈ {-1, +1},目标是找到一个超平面 w·x + b = 0 将两类正确分开。
一个超平面能将样本正确分类的条件是:
y_i (w·x_i + b) ≥ 1
等号成立的样本点就是支持向量,它们离超平面最近,决定了超平面的位置。
间隔定义为两个异类支持向量到超平面的距离之和:
margin = 2 / ||w||
SVM 的优化目标就是在满足分类约束的前提下最大化间隔,等价于最小化 ||w||^2 / 2。这构成一个凸二次规划问题:
min 1/2 ||w||^2
s.t. y_i (w·x_i + b) ≥ 1, ∀i
2. 软间隔与正则化
现实数据往往存在噪声或离群点,无法完全线性可分。引入松弛变量 ξ_i ≥ 0,允许部分样本落在间隔内甚至被误分类,形成软间隔 SVM:
min 1/2 ||w||^2 + C ∑ ξ_i
s.t. y_i (w·x_i + b) ≥ 1 - ξ_i
ξ_i ≥ 0
超参数 C 权衡间隔大小与误分类惩罚:
C大:对误分类容忍度低,容易过拟合,间隔窄。C小:允许更多误分类,间隔宽,模型更简单。
3. 对偶问题与支持向量
利用拉格朗日乘子法,将原始问题转化为对偶问题:
max ∑ α_i - 1/2 ∑∑ α_i α_j y_i y_j (x_i·x_j)
s.t. ∑ α_i y_i = 0
0 ≤ α_i ≤ C
其中 α_i 是拉格朗日乘子。求解后,只有部分 α_i > 0,对应的样本就是支持向量。最终决策函数为:
f(x) = sign( ∑ α_i y_i (x_i·x) + b )
可以看到,预测只依赖支持向量与输入样本的内积。这一性质为核技巧提供了可能。
4. 核技巧:从线性到非线性
当数据在原始空间线性不可分时,可以将其映射到一个更高维的特征空间,使其线性可分。设映射函数为 φ(x),则分类决策变为:
f(x) = sign( ∑ α_i y_i ⟨φ(x_i), φ(x)⟩ + b )
但直接计算 φ(x) 可能非常昂贵,甚至维度过高。核技巧的思想是:只要找到一个核函数 K(x_i, x_j) = ⟨φ(x_i), φ(x_j)⟩,就可以在原始空间计算内积,而无需显式进行特征映射。
此时,对偶问题中的内积 (x_i·x_j) 替换为 K(x_i, x_j),决策函数变为:
f(x) = sign( ∑ α_i y_i K(x_i, x) + b )
常见的核函数
-
线性核:
K(x, z) = x·z
等价于原始空间的线性 SVM,适合线性可分数据。 -
多项式核:
K(x, z) = (γ x·z + r)^d
其中d控制多项式阶数,γ和r为可调参数。阶数过高容易过拟合。 -
高斯核(RBF核):
K(x, z) = exp(-γ ||x - z||^2)
最常用的核函数,将数据映射到无限维空间。γ控制单个样本的影响范围:γ大:决策边界复杂,容易过拟合。γ小:决策边界平滑,可能欠拟合。
-
Sigmoid 核:
K(x, z) = tanh(γ x·z + r)
行为类似两层神经网络,但使用较少。
如何选择核函数?
一般遵循以下原则:
- 特征数量很大,与样本量相当 → 使用线性核即可,避免复杂模型。
- 特征数小,样本量适中 → 尝试 RBF 核,通过交叉验证调参。
- 特征数小,样本量极大 → 考虑手工增加特征,再用线性核,或采用近似核方法提升效率。
5. 参数调优与实用注意事项
- 参数
C和核参数(如γ) 强烈影响模型性能,建议使用网格搜索(Grid Search)搭配交叉验证进行选择。 - 数据预处理至关重要:SVM 对特征尺度敏感,务必进行标准化(如
StandardScaler),使各特征均值为 0、方差为 1。 - 样本不平衡时,可通过设置类别权重(如
class_weight='balanced')调整误分类惩罚。 - SVM 的训练复杂度约为
O(n^2)到O(n^3),对大规模数据需使用线性 SVM 或近似算法(如 SGDClassifier)。
6. 总结
- SVM 追求最大化分类间隔,由支持向量完全决定决策边界。
- 软间隔通过松弛变量和正则化参数
C应对数据不可分及噪声。 - 核技巧无需显式映射,利用核函数隐式完成高维空间的内积计算,高效实现非线性分类。
- 常用核函数中,RBF 核适应性强,但需要仔细调节
C和γ。 - 实际应用必须特征标准化,并使用交叉验证调参。
掌握了最大间隔原理与核技巧,你就能够灵活运用 SVM 解决线性与非线性分类问题,在中小规模数据上获得极具竞争力的预测性能。