机器学习 04:软间隔支持向量机
主要思想
上篇文章提到了线性可分支持向量机,顾名思义,这个算法可以解决线性可分的数据,但在实际情况下几乎不存在完全线性可分的数据,为解决这个问题,需要引入“软间隔”这个概念,意思是允许一些点不满足约束条件 $y_i(\vec w\cdot\vec x_j+b)\ge1$
引入 Hinge 函数
使用 $hinge$ 损失函数将原优化问题
改写为:
其中 $\xi_i$ 为“松弛变量”,$\xi_i=\max(0,1-y_i(\vec w\cdot\vec x_i+b))$,是一个 $hinge$ 损失函数,它反应了所有在边界内的点(也就是分类错误的点)到边界的距离。每一个样本对应一个松弛变量,松弛变量描绘了该样本不满足约束的程度。
$C>0$ 为惩罚函数,$C$ 越大,对分类的惩罚越大。或者可以理解为,$C$ 越大,边界越小(因为一但有一个在边界内的点都会带来很大的惩罚)
拉格朗日乘子法
把原优化问题
转换成拉格朗日函数
其中 $\alpha_i\ge0,\mu_i\ge0$
令 $L(\vec w,b,\vec \xi)$ 对 $\vec w,b,\vec \xi$ 求偏导(中间略去的过程参考线性可分支持向量机)
代回原式:
之后的过程与线性可分支持向量机相同。
调库实现:
1 | from sklearn import svm |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment