SVM之线性不可分
来源:互联网 发布:苹果8plus数据参数 编辑:程序博客网 时间:2024/06/14 22:37
原文地址:http://www.cnblogs.com/dreamvibe/p/4362220.html
上一篇SVM之核函数介绍了通过计算样本核函数,实际上将样本映射到高维空间以望使其线性可分的方法,一定程度上解决了线性不可分问题,但并不彻底。
现在,换个思路,对于线性不可分问题不再千方百计的变换数据使其线性可分,对于有些数据,找到合适的变换可能是相当困难的。我们允许数据线性不可分,允许得到的分类器对一些样本而言不“完美”,但分类器得为自己的不“完美”付出代价,它要受到惩罚!
考虑之前线性可分时对SVM的形式化
这里要求所有样本的函数间隔至少为1,这就是所谓的“完美”,两类样本被分的尽可能的开,它们离分类超平面至少有值为1的函数间隔,
现在,我们放松要求,不要求那么苛刻了,对于一些样本并不要求函数间隔至少为1,比1小点也行(分的不够开了),小到小于0了也行(错分了)。写成表达式就是
相应地,目标函数也得变,因为不可能约束变但目标不变,不然
现在,优化问题可以重新写成
求解这个优化问题就可以了。
写出拉格朗日函数
令
先来求
令
令
令
将上述结果代回(3)(4)得到对偶问题
当然,这里仍然可以引人核函数,将
这是一个二次规划问题,可以用一般的二次规划方法来解,不过代价比较大,John C.Platt提出了SMO算法用来求解该优化问题。求解得到
或者引人核函数的话写作
不过这里
核函数通过向高维映射来解决线性不可分问题,现在有引人了惩罚机制了解决线性不可分问题问题,但不能简单地将它们看作完全独立的方法。如果仅仅依赖于惩罚机制,在样本线性不可分的情况下得到是所谓最优分类器其实也是比较差的,这是由样本本身的分布决定的,所以还是需要首先用“核函数完成映射”,使样本变得尽可能线性可分。
另外,惩罚机制也解决了噪声问题,通过对噪声数据较小的惩罚损失来换取目标函数整体上较大的优化。
不考虑惩罚机制,如果图中没有黑色的三角形样本,那分类器可能像实线那样,分类间隔还是挺大的,但这一个很像噪声的样本却将分类间隔挤压的很小,严重影响分类器的番话特性。加入惩罚机制后,新的分类器就有可能会以对这个样本的“不完美”分类为代价,换取分类间隔的提升。从(2)中目标函数
写到这里,SVM的基本问题除了求解优化问题(6)的SMO算法之外,已基本完成。对于SMO算法,再学习吧~
- SVM之线性不可分
- SVM之解决线性不可分
- 支持向量机SVM之处理线性不可分数据
- 机器学习SVM算法原理之线性不可分情况
- OpenCV 2.x + SVM线性不可分处理
- OpenCV 2.4+ C++ SVM线性不可分处理
- 支持向量机(SVM)--线性不可分
- 【OpenCV2.4】SVM处理线性不可分的例子
- 理解SVM(二)——线性不可分的情况
- SVM边学边总结系列——线性不可分情况
- 第11节--支持向量机(SVM)--线性不可分
- OpenCV之ml 模块. 机器学习:支持向量机(SVM)介绍 支持向量机对线性不可分数据的处理
- SVM 为何需要核函数 & 线性不可分转化为高维线性可分
- 采用线性SVM对线性不可分的数据进行分类(含matlab实现)
- SVM(三)支持向量机,线性不可分和核函数
- SVM(三),支持向量机,线性不可分和核函数
- SVM(三),支持向量机,线性不可分和核函数
- SVM(三),支持向量机,线性不可分和核函数
- python下的单例模式
- IO流简介及方法
- 给定俩个字符串一个S(母串),一个T(子串),有多少种方法从母串中移除字符得到子字符串
- springboot第二天 junit单元测试
- 【比特币】BIP-0009 软叉标准
- SVM之线性不可分
- mysql使用between and处理时间区间不包括右边界问题
- c++ 中vector用法
- 异常:Can't connect to MySQL server (10060)
- js 阿拉伯数字转中文大写货币
- Ubuntu 16.04无线wifi频繁掉线及信号不足解决办法
- Cookie测试的测试点
- 微信支付接口-银行官方通道
- 开源C/C++网络库比较