1、线性SVM面临的问题
有时候数据本身是线性可分的,意味着就可以用线性SVM的方式来求解,无赖数据中包含异常点,导致不能线性可分,如下图所示:
另外一种情况没有这么糟糕到不可分,但是会影响我们模型的泛化能力,比如下图,本来如果我们不考虑异常点,SVM的超平面应该是下图中的红色线所示,但是由于有一个蓝色的异常点,导致我们学习到的超平面是下图中的粗虚线所示,这样会严重影响我们的分类模型预测效果。
如何解决这些问题呢?SVM引入了软间隔最大化的方法来解决
2、线性分类SVM的软间隔最大化
所谓的软间隔,是相对于硬间隔说的,我们可以认为上一篇线性分类SVM的学习方法属于硬间隔最大化。
SVM对训练集里面的每个样本(xi,yi)引入了一个松弛变量ξi≥0,使函数间隔加上松弛变量大于等于1,也就是说:
这个目标函数的优化和上一篇的线性可分SVM的优化方式类似,我们下面就来看看怎么对线性分类SVM的软间隔最大化来进行学习优化
3、线性分类SVM的软间隔最大化目标函数的优化
和线性可分SVM的优化方式类似,利用拉格朗日函数转化为无约束问题如下:这就是软间隔最大化时的线性可分SVM的优化目标形式,和上一篇的硬间隔最大化的线性可分SVM相比,我们仅仅是多了一个约束条件0≤αi≤C。我们依然可以通过SMO算法来求上式极小化时对应的α向量就可以求出w和b了。
4、软间隔最大化时的支持向量
a) 如果α=0,即样本在间隔边界上或者已经被正确分类,如图中所有原理边界的点
c) 如果α=C,说明这是一个可能比较异常的点,需要检查此时ξi
i)如果0≤ξi≤1,那么点被正确分类,但是却在超平面和自己类别的间隔边界之间。如图中的
ii)如果ξi=1,那么点在分离超平面上,无法被正确分类。
iii)如果ξi>1,那么点在超平面的另一侧,也就是说,这个点不能被正常分类。如图中的样本1和3.
5、软间隔最大化的线性可分SVM的算法过程
输入是线性可分的m个样本(x1,y1),(x2,y2),...,(xm,ym),,其中x为n维特征向量。y为二元输出,值为1,或者-1.
输出是分离超平面的参数w∗和b∗和分类决策函数。
算法过程如下:
1)选择一个惩罚系数C>0, 构造约束优化问题
2)用SMO算法求出上式最小时对应的α向量的值α向量.
3) 计算
找出所有的S个支持向量对应的样本(xs,ys),通过
这样最终的分类超平面为: