阅读大概需要5分钟

跟随小博主,每天进步一丢丢
导读
昨天详细谈了谈最简单的SVM,相比较于今天要讲的Soft Margin SVM来说,昨天讲的其实是Hard Margin SVM,没看过的朋友们可以点击这里:
为什么提出Soft Margin SVM
还是举一个例子吧
该点属于蓝色类别,所以决策线如图所示。但是这个决策边界如果运用到现实环境中的话,肯定会有很大的误分类点。也就是该分类线没有泛化能力。关于上述的情况,其实我们的理想分类线应该为:
虽然在训练集中分类效果不好,但是它具有一定的泛化能力!毕竟我们的模型最终都是要用到现实生活中去的。
再比如存在线性不可分的点,但还是理想情况还是可以分的情况,如
而能解决上述2种问题的SVM就被成为Soft Margin SVM,允许一些点进行错误分类。
Soft Margin SVM理论
我们先回顾下之前的SVM(Hard Margin SVM)的优化公式:
像上述距离的两种情况不能分类的具体原因就是该条件的限制:
现在我们允许一些点犯错,也就是允许一些点不满足这个公式,放放水,所以对每个点引入一个松弛变量(大于等于0),使得
+它的松弛变量 >= 1
即可,转换下公式为
 >= 1 - 它的松弛变量
上述式子的专业公式为:
但是松弛变量也不能太大,得需要有东西看着它,怎么看着呢?当然就是用目标函数啦。又因为每个数据点都有自己的松弛变量,所以需要需要求和作为最终目标函数的一部分:

但是这样的目标函数
表示a和b重要性是相同的。但是实际上a,b是有各自的权重的,但是这里其实只要在b部分加个权重C即可:

当C越大时,代表主要是优化b部分,所以就对于b项很严格,最终就使得结果越接近Hard Margin SVM。反之,当C越小时,代表主要优化a部分,就对于b宽松很多,最终就是的结果非常的Soft Margin SVM。如何选择C值,自己调试即可。
所以最终的完整目标函数为:
SVM正则化
正则化,听起来有难度的赶脚,但是实际上很简单,比如上述的目标函数就是L1正则:
这里的L1正则说的是松弛变量的幂。那样这样就很好理解L2正则啦:
常用的是L2正则,个人觉得是实验效果决定的结果吧。
代码实践
这里用的是sklearn来实践的
数据介绍
初始化SVM C = 1e9 

SVM还有很多参数,感兴趣的可以自行了解哈。

可视化

改变C的值,C = 0.01
注意到该点的分类变化。
PS:今天就到这里吧,下次会带来对偶问题和核函数,以及SVM的回归模型。敬请期待!
IELTS a bit
documentation n. 文件,证明文件,史实,文件编制
clientele n. 客户;诉讼委托人
sequential adj. 连续的;相继的;有顺序的
conclusive adj. 决定性的;最后的;确定的;确实的;确定性的
introspection n. 内省;反省
推荐阅读:

欢迎关注深度学习自然语言处理公众号,我会每天更新自己在机器学习深度学习NLPlinuxpython以及各种数学知识学习的一点一滴!再小的人也有自己的品牌!期待和你一起进步!
点个赞呗
继续阅读
阅读原文