【机器学习】SVM漫谈
来源:互联网 发布:中国软件评测中心 户口 编辑:程序博客网 时间:2024/06/06 00:01
SVM对于中小规模的数据来说是非常好的模型。由于其可以用数学严谨的推导出结果,可解释性比较强,所以在工业上应用的比较广。
一,SVM的推导
简单起见先考虑SVM在线性的二分类中的应用。
如图1所示svm的目的就是找到一条直线能够很好的将正、负样本“很好的”分开。这个“很好的”是指对于样本的鲁棒性比较好,及时样本点受到一点噪声也不会影响分类的结果,比较直观的看就是正负样本点离分割线的距离比较远。这就是svm的关键点之1:
KEY 1:分割线与正负样本的间隔越大越好。
那么就有如下公式:
w为分割线的法向量,u为要判断的样本点,通过公式来判断样本对是正样本还是负样本。
此时svm的目标是找到合适的w ⃗和b来使对新样本的判断比较正确。
在训练样本中,对于正负样本的存在如下的不等式,即svm的最大间隔假设:
其中离分割线最近的正负样本点(就是图1中出现在分割线两遍绿色边界线上的点)称作“支持向量点”,Vector Point,这些点能够使公式(3)上的等号成立。
图1中的边界的距离margin为,正样本向量减去负样本的向量然后向边界的法向量上的投影:如图2:
如图2所示,margin长度d为正样本X+与负样本X-的差并在分割线法向量w上的投影,距离d的计算如下:
公式(9)成立的条件是:
也就是说只有“支持向量点”对应的α_i才不为0,其他的α_i都为0。可以使用QP或者是SMO来求得一组α_i的值及其对应的x_i的值来,这样就能得到要求的支持向量模型。
二,SVM核函数
若训练集为非线性的,那么与线性的类似,我们需要将样本从不易划分的原始空间映射到容易划分的高维空间,如下图所示:
如上图所示在二维空间中不好划分,但是映射到三维空间就好划分了。
那么之前的线性模型就可以写成这样:
那么其对偶问题的解为:
其中∅(x_i )∅(x_j )表示样本x_i与x_j 映射到特征空间的内积。在非线性中关心的就是变换之后的样本点的内积,而核函数是两个线性变化之后的内积,定义为:k(x_1,x_2 )=ρ(x_1 )*ρ(x_2)。
只要一个对称函数所对应的核矩阵半正定,它就能作为核函数。常用的作为核函数的函数有:
另外还可以函数组合得到核函数,若k_1和k_2为核函数,那么他们的线性组合也是核函数:a*k_1+b*k_2。
三,软间隔
软间隔是值允许有些样本在支持向量机上出错。就是有些样本不满足公式(3).在最大化间隔的同时不不满足约束条件的点应该尽可能的少。于是优化目标为:
而将之转化为对偶问题的结果为:
其中C是一个常数,当C无穷大时迫使所有样本都满足公式(3) 那么就不是“软间隔”了,当C为有限值时就允许有些样本不满足约束条件(3)。C越大不满足约束条件的点越少,满足约束条件的点就越多,所以拟合能力越强,但是容易过拟合。
注意:还有一个重要参数是当把核函数定义为RBF核时的高斯核σ,当σ越大,f越平滑,非线性效能越小,对噪声越不敏感。σ 隐含地决定了数据映射到新的特征空间后的分布,gamma越大,支持向量越少,gamma值越小,支持向量越多。支持向量的个数影响训练与预测的速度。
在RBF核中,σ对函数的影响,如下图:
四,SVM简约版(面试专用)
1,svm是基于训练样本在样本空间中找到一个划分超平面,将不同类别划分开。
超平面可以使用如下方程描述:,其中表示的是超平面的法向量。
2,若超平面可以将样本正确分类,那么有:,那么存在缩放变换,可以将w,b进行缩放得到如下公式:。
说明:若有f(x1,x2)=x1+x2-0.6,满足负样本(0,0),有f(0,0)<0;正样本(1,1),有f(2,2)>0.那么有f(x1,x2)=2*x1+2*x2-1.2,使f(0,0)<-1,f(1,1)>1,仅仅是方程的系数改变了而已。
3,可以将上式改写成:
4,任意一点到超平面的距离为:,那么两个异类支持向量到超平面的距离(可以理解为到超平面法向量上的投影)为:,称之为“间隔”。
5,“间隔”越大那么超平面分割的效果就越好。那么有如下转换:,将最大化问题转化成了最小化问题。于是就得到第一个关键公式:
6,使用拉格朗日乘子法可以将其转化成“对偶问题”:
说明:上式的第二项为正数,减去一个正数肯定不大于原来的树,所以要找到a能使L的值达到最大(L的第二项达到最小),然后再找到w,b使L最小,即。转化之后就可以得到其对偶问题了:,即先寻找w,b得到L的最小值,然后寻找a使L达到最大。
7,对L(w,b,a)对w,b求偏导,并令之为0,得到:
将(2)式带入到(1)中并化简可以得到:
- 【机器学习】SVM漫谈
- 机器学习漫谈
- 【漫谈机器学习】-前言
- 机器学习 SVM
- 机器学习7-SVM
- 机器学习实战--svm
- 机器学习系列----SVM
- 机器学习---SVM(1)
- 机器学习笔记-SVM
- 机器学习 SVM sklearn
- 【机器学习】SVM浅谈
- SVM NG机器学习
- 机器学习笔记:SVM
- [机器学习] SVM
- 机器学习之SVM
- 机器学习--SVM
- 机器学习之SVM
- 机器学习-SVM算法
- 阿里云文件存储 NAS 使用教程
- windows中安装Spark
- CSS中的相对路径
- java.lang.IllegalArgumentException at org.springframework.asm.ClassReader.<init>(Unknown Source)
- centos 7.0安装mysql
- 【机器学习】SVM漫谈
- 一个对象的属性名是一个变量
- 97、PageRank算法学习
- USB2.0协议分析
- RabbitMQ之Routing
- openvas安装指南(转)
- 98、搜索引擎反作弊的一些方法
- public/private/protected的具体区别
- JS简单实例,九九乘法表