搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > Python中文社区 > 支持向量机原理推导(二)

支持向量机原理推导(二)

Python中文社区 2017-11-29

專 欄

当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放 支持向量机原理推导(二)

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

— 人生苦短,我用Python —
1MEwnaxmMz7BPTYzBdj751DPyHWikNoeFS



本文为作者原创作品,未经作者授权同意禁止转载



本社区计划在北京、上海、深圳、广州、香港、杭州、成都、南京、武汉、西安十座城市设立城市俱乐部,以方便同城的Python开发者进行更加深入的交流,同时也为方便以后举办线上线下的活动,欢迎大家加入! 请直接添加工作人员微信:pythonpost并注明所在城市申请即可。    

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《支持向量机原理推导(二)》的版权归原作者「Python中文社区」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注Python中文社区微信公众号

Python中文社区微信公众号:python-china

Python中文社区

手机扫描上方二维码即可关注Python中文社区微信公众号

Python中文社区最新文章

精品公众号随机推荐

上一篇 >>

Flask钩子函数