支持向量机原理推导
Posted Python中文社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支持向量机原理推导相关的知识,希望对你有一定的参考价值。
專 欄
exploit,Python中文社区专栏作者。希望与作者交流或者对文章有任何疑问的可以与作者联系:
15735640998@163.com
GitHub:
https://github.com/webYFDT
上一节我们讲述了间隔公式是如何得到的,这一节讲述要得到最大间隔时的分割超平面所要的条件是什么。
在上图中我们可以看到间隔为MarginB/2,但是我们很容易发现黑线还可以向上移动从而得到更大的间隔,当移动到是最上面红线与第一个Men数据点相交时便得到最大间隔了,如下图:
下面我们就根据这个思路求出得到最大间隔时所要满足的条件。
如上图,我们设分割超平面为g:W•X+b=0,以它为对称轴的两条线为h:W•X+b=1;f:W•X+b=-1
首先必须满足在h与f线之间没有任何数据,然后便是支持向量正好在这两条线上。即:
对于蓝色类都满足W•X+b≥1,且至少有一个点瞒住W•X+b=1;
对于红色类都满足W•X+b≤-1,且至少有一个点瞒住W•X+B=-1;
我们设蓝色类与红色类的标签分别为(1,-1),那么我们把不等式与各自对应的标签相乘便可以得到一个综合的公式,即:y_i (W•X_i+b)≥1。
条件我们找到了,下面就是要推导出h与f线之间间隔的公式。
设h与f间隔为m
因为K向量垂直于h与f,所以Z_1=Z_0+K (1式)
因为Z_1在h上,所以W•Z_1+b=1 (2式)
将1式带入2式得W(Z_0+K)+b=1 (3式)
其中K= (m•W)/(||W||) (4式)
将4式带入3式得W(Z_0+(m•W)/(||W||))+b=1 (5式)
化简5式得W•Z_0+b=1-m*||W|| (6式)
因为Z_0在f上,所以满足W•Z_0+b=-1 (7式)
将7式带入6式得:-1=1-m*||W|| (8式)
所以(8式)化简得到距离m=2/(||W||),可以看出||W||越小m越大
综上我们可以看出得到最优分割超平面便是得到在满足y_i (W•X_i+b)≥1时,||W||的最小值。
本节内容便到此结束,下节内容我们拓展一下拉格朗日乘子与KKT的知识,因为我们最后要用到KKT对上式进行变形得到书上所说的优化目标函数:
,以及约束条件:
长按扫描关注Python中文社区,
获取更多技术干货!
Python 中 文 社 区
Python中文开发者的精神家园
合作、投稿请联系微信:
pythonpost
1MEwnaxmMz7BPTYzBdj751DPyHWikNoeFS
本文为作者原创作品,未经作者授权同意禁止转载
本社区计划在北京、上海、深圳、广州、香港、杭州、成都、南京、武汉、西安十座城市设立城市俱乐部,以方便同城的Python开发者进行更加深入的交流,同时也为方便以后举办线上线下的活动,欢迎大家加入! 请直接添加工作人员微信:pythonpost并注明所在城市申请即可。
以上是关于支持向量机原理推导的主要内容,如果未能解决你的问题,请参考以下文章