SVM支持向量机三(软间隔处理规则化和不可分情况)

SVM支持向量机三(软间隔处理规则化和不可分情况)

   前两章我们讨论的情况都是建立在样例线性可分的假设上,当样例线性不可分时,我们可以尝试使用核函数来将特征映射到高维,这样很可能就可分了。然而,映射后我们也不能100%保证可分。那怎么办呢,我们需要将模型进行调整,以保证在不可分的情况下,也能够尽可能地找出分隔超平面。

本章我们将讲到:

 1.如何添加松弛变量和软间隔技术
 2.违背KKT条件的点条件

--------------------------------------------------------------------------

1.如何添加松弛变量和软间隔技术

首先我们先看下面的游离点的情况:图一(左),图二(右)


SVM支持向量机三(软间隔处理规则化和不可分情况)_第1张图片

对于上述情况,我们如果仍然希望图二中还是虚线的情况下(因为这种情况虽然目前分的很好,但是考虑到未来最理想的情况仍然是虚线最好),那我们应该怎么办呢?

可以看到一个离群点(可能是噪声)可以造成超平面的移动,间隔缩小,可见以前的模型对噪声非常敏感。再有甚者,如果离群点在另外一个类中,那么这时候就是线性不可分了。这时候我们应该允许一些点游离并在在模型中违背限制条件(函数间隔大于1)。我们设计得到新的模型如下(也称软间隔):

SVM支持向量机三(软间隔处理规则化和不可分情况)_第2张图片

这个时候原始问题就会进一步发生变化变为:Soft margin 情况!!!
这个时候啊,我们在用图来表示就更容易清楚了!!!
SVM支持向量机三(软间隔处理规则化和不可分情况)_第3张图片

以下为推导的情况:
SVM支持向量机三(软间隔处理规则化和不可分情况)_第4张图片
SVM支持向量机三(软间隔处理规则化和不可分情况)_第5张图片
SVM支持向量机三(软间隔处理规则化和不可分情况)_第6张图片

下面重点来了,刚才还没讲透彻呢
SVM支持向量机三(软间隔处理规则化和不可分情况)_第7张图片
 2.违背KKT条件的点条件
SVM支持向量机三(软间隔处理规则化和不可分情况)_第8张图片

根据这个公式,
违背了KKT条件的点判断条件(ζi完全可以忽略的,因为它正常都是>0,这个值可以由C来控制):

 1. alphas[i] == 0 and [y*(w* xi+b) -1
] < 0 
 2. alphas[i] == C and [y*(w* xi+b) -1
] > 0

 3. alphas[i]  > 0 and alphas[i][y*(w* xi+b) -1
!= 0

这3个很有用,我们编程的时候要优先选择这些不符合KKT条件的点进行更新,就是要先if判断,在更新!!!还有C越大就越能容忍离群点的,超平面就越理想。


SVM支持向量机四(SMO算法)
可以参考我另一篇文章SVM支持向量机四(SMO算法)


你可能感兴趣的:(Stanford,Machine,Learning)