工作生活

08-支持向量机(三)线性支持向量机的软间隔最大化模型

2019-06-30  本文已影响0人  kang_james

1、线性SVM面临的问题

有时候数据本身是线性可分的,意味着就可以用线性SVM的方式来求解,无赖数据中包含异常点,导致不能线性可分,如下图所示:


另外一种情况没有这么糟糕到不可分,但是会影响我们模型的泛化能力,比如下图,本来如果我们不考虑异常点,SVM的超平面应该是下图中的红色线所示,但是由于有一个蓝色的异常点,导致我们学习到的超平面是下图中的粗虚线所示,这样会严重影响我们的分类模型预测效果。
如何解决这些问题呢?SVM引入了软间隔最大化的方法来解决

2、线性分类SVM的软间隔最大化

所谓的软间隔,是相对于硬间隔说的,我们可以认为上一篇线性分类SVM的学习方法属于硬间隔最大化。

回顾一下硬间隔最大化的条件:
SVM对训练集里面的每个样本(xi,yi)引入了一个松弛变量ξi≥0,使函数间隔加上松弛变量大于等于1,也就是说:
对比硬间隔最大化,可以看到我们对样本到超平面的函数距离的要求放松了,之前是一定要大于等于1,现在只需要加上一个大于等于0的松弛变量能大于等于1就可以了。当然,松弛变量不能白加,这是有成本的,每一个松弛变量ξi, 对应了一个代价ξi,这个就得到了我们的软间隔最大化的SVM学习条件如下: 也就是说,我们希望1//2*||w||2尽量小,误分类的点尽可能的少。C是协调两者关系的正则化惩罚系数。在实际应用中,需要调参来选择。
这个目标函数的优化和上一篇的线性可分SVM的优化方式类似,我们下面就来看看怎么对线性分类SVM的软间隔最大化来进行学习优化

3、线性分类SVM的软间隔最大化目标函数的优化

和线性可分SVM的优化方式类似,利用拉格朗日函数转化为无约束问题如下: image.png

这就是软间隔最大化时的线性可分SVM的优化目标形式,和上一篇的硬间隔最大化的线性可分SVM相比,我们仅仅是多了一个约束条件0≤αi≤C。我们依然可以通过SMO算法来求上式极小化时对应的α向量就可以求出w和b了。

4、软间隔最大化时的支持向量

a) 如果α=0,

即样本在间隔边界上或者已经被正确分类,如图中所有原理边界的点

b) 如果0<α<C,那么ξi=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),通过 计算出每个支持向量(xx,ys)对应的bs
,计算出这些 所有的bs*对应的平均值即为最终的
这样最终的分类超平面为: 最终的分类决策函数为:
上一篇下一篇

猜你喜欢

热点阅读