社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

【机器学习】今天详细谈下Soft Margin SVM和 SVM正则化

深度学习自然语言处理 • 7 年前 • 422 次点击  

阅读大概需要5分钟

跟随小博主,每天进步一丢丢



导读

昨天详细谈了谈最简单的SVM,相比较于今天要讲的Soft Margin SVM来说,昨天讲的其实是Hard Margin SVM,没看过的朋友们可以点击这里:

【机器学习】今天想跟大家聊聊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. 内省;反省


推荐阅读:

一大批历史精彩文章啦

【收藏版】长文详解基于并行计算的条件随机场

【珍藏版】长文详解python正则表达式

这些神经网络调参细节,你都了解了吗

谈谈我在自然语言处理入门的一些个人拙见

大数定律和中心极限定理的区别和联系

深度学习之卷积神经网络CNN理论与实践详解

深度学习之RNN、LSTM及正向反向传播原理

TreeLSTM Sentiment Classification

基于attention的seq2seq机器翻译实践详解

【干货】基于注意力机制的seq2seq网络




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

点个赞呗


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/TCgGxbYcr8
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/22240
 
422 次点击