支持向量机 SVM:核技巧与最大间隔分类

FreeGuideOnline 最新 2026-06-16

支持向量机:核技巧与最大间隔分类

支持向量机(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)
    行为类似两层神经网络,但使用较少。

如何选择核函数?

一般遵循以下原则:

  1. 特征数量很大,与样本量相当 → 使用线性核即可,避免复杂模型。
  2. 特征数小,样本量适中 → 尝试 RBF 核,通过交叉验证调参。
  3. 特征数小,样本量极大 → 考虑手工增加特征,再用线性核,或采用近似核方法提升效率。

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 解决线性与非线性分类问题,在中小规模数据上获得极具竞争力的预测性能。