您的位置:首页 > 其它

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

2013-12-02 14:05 483 查看
SVM支持向量机三(软间隔处理规则化和不可分情况)

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

本章我们将讲到:

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

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

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



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



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

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



这个时候原始问题就会进一步发生变化变为:Soft margin 情况!!!
这个时候啊,我们在用图来表示就更容易清楚了!!!



以下为推导的情况:













下面重点来了,刚才还没讲透彻呢




[b] 2.违背KKT条件的点条件

[/b]





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

1. alphas[i] == 0 and [yi *(wT *
xi+b) -1


] < 0

2. alphas[i] == C and
[yi *(wT * xi+b)
-1


] > 0

3. alphas[i] > 0 and alphas[i]<C and
[yi *(wT * xi+b)
-1


]

!= 0

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

SVM支持向量机四(SMO算法)
可以参考我另一篇文章:SVM支持向量机四(SMO算法)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐