SVM(支持向量机)
原理
SVM的核心目标是找到一个最大化分类间隔的超平面,将不同类别的样本分隔开。其原理可分为三部分:
-
线性可分情况
- 通过硬间隔最大化确定超平面,确保所有样本正确分类且间隔最大
- 间隔定义为超平面到最近样本(支持向量)的距离,优化目标为最小化权重向量的范数,同时满足约束条件。
-
近似线性可分(软间隔)
- 引入松弛变量允许部分样本违反间隔约束,通过调整惩罚参数
C
平衡分类精度与模型复杂度。
- 引入松弛变量允许部分样本违反间隔约束,通过调整惩罚参数
-
非线性分类(核技巧)
- 通过核函数将数据映射到高维空间,使其线性可分。例如,RBF核(径向基函数)通过计算样本间相似性实现非线性分割。
关键概念
-
支持向量
- 定义:距离超平面最近的样本点,决定了超平面的位置和方向。
- 作用:仅支持向量参与模型计算,赋予SVM稀疏性和高效性。
-
对偶问题
- 原始问题转化为对偶问题,通过拉格朗日乘子法简化求解,避免直接处理高维特征空间的内积计算。
- 优势:便于引入核技巧,且对偶问题的解直接关联支持向量。
-
核函数
- RBF核(高斯核):
K(x,y) = exp(-γ||x-y||²)
,适合处理复杂非线性问题,参数γ
控制样本影响范围。 - 多项式核:
K(x,y) = (γx·y + r)^d
,通过阶数d
控制映射维度,适用于中等复杂度的非线性问题。
- RBF核(高斯核):
损失函数:Hinge Loss
公式:L(y, f(x)) = max(0, 1 - y·f(x))
- 作用:惩罚误分类和间隔不足的样本,使得模型学习更大的分类间隔。
- 特性:在正确分类且间隔足够时为0,误分类时线性增长,保证解的稀疏性(仅支持向量贡献损失)。
常见问题解答
Q1: 为什么SVM对缺失数据敏感?
- 原因:SVM依赖支持向量计算样本间距离或核矩阵,缺失值会破坏特征空间的几何结构,导致距离计算偏差。
- 影响:若缺失值出现在支持向量中,可能显著改变超平面位置,降低模型鲁棒性。
Q2: SVM如何解决多分类?
- OvO(One-vs-One):构建
k(k-1)/2
个二分类器,通过投票决定类别,适合类别数较少的场景。 - 直接多类SVM:通过结构化SVM或修改优化目标直接处理多分类,但计算复杂度较高。