SVM简介:
- 一、SVM定义:二分类模型,特征空间上间距最大的线性分类器;目标是间距最大化,可转化为凸二次优化问题。
- 二、给定一些数据点,可分为两类,SVM目标找到一个超平面线性划分这两个类别,超平面可方程表示为:
x+b=0
- 三、分类决策函数
f(x)=sign(x+b)
- 四、函数间距与几何间距(通过wTx+b与y的预测是否一致来表示是否分正确)
4.1函数间距:
(函数间距表示存在问题:成比例改变w,b,函数间距也会成比例变化,为此,引出了几何间距对w进行约束)
4.2几何间距:
几何间隔就是函数间隔除以||w||。
4.3几何间距较函数间距更加适合的原因:
对一个数据点进行分类,当超平面离数据点的“间隔”越大,分类的确信度(confidence)也越大。所以,为了使得分类的确信度尽量高,需要让所选择的超平面能够最大化这个“间隔”值。函数间隔不适合用来最大化间隔值,因为在超平面固定以后,可以等比例地缩放w的长度和b的值,这样可以使得的值任意大,亦即函数间隔可以在超平面保持不变的情况下被取得任意大。但几何间隔因为除上||w||了,使得在缩放w和b的时候几何间隔的值是不会改变的,它只随着超平面的变动而变动,因此,这是更加合适的一个间隔。
- 五、优化目标
如下图所示,中间的实线x+b=0是要求解的最优超平面,其到两条虚线(间隔边界)的距离相等,这个距离便是几何间隔,两条虚线之间的距离等于2,而虚线上的点则是支持向量。由于这些支持向量刚好在边界上,所以它们满足y(x+b)=1,而对于所有不是支持向量的点,则显然有y(x+b)>1。
在分类正确的情况下,间距最大化
考虑到函数间距与几何间距的关系,上式等价于
为了方便推导和优化,令=1,上式表示为
这是一个典型的凸二次优化问题,可以通过与原问题等价的对偶问题来求解该问题。凸优化问题描述如下:
对偶问题往往更容易求解;也可以自然的引入核函数,进而推广到非线性分类问题。
- 六、线性svm算法描述
- 七、转化为对偶问题求解SVM
7.1定义拉格朗日函数
7.2 KTT条件(统计学习方法附录C)
将原始问题转化为极大极小问题
7.3 SVM求解
可转化为:
7.4线性可分对偶算法描述
八、软间距svm
九、核函数
9.1引入核函数的原因
在线性不可分的情况下,支持向量机首先在低维空间中完成计算,然后通过核函数将输入空间映射到高维特征空间,最终在高维特征空间中构造出最优分离超平面,从而把平面上本身不好分的非线性数据分开。
9.2核函数的算法
9.3常见的核函数
定义:f(x1,x2)=<x1,x2>=(x1)(x2),(x1)表示原来的样本扩维后的坐标。
线性核函数:
K<x1,x2>=<x1,x2>
多项式核函数:
K<x1,x2>=
高斯核:
K(x1,x2)=
拉普拉斯核函数:
K(x1,x2)=
sigmod核函数:
K(x1,x2)=
十、tensorflow代码实现svm见git
https://github.com/frostjsy/my_study/blob/master/ml/svm/svm.py
参考:1、李航《统计学习方法》
2、https://blog.csdn.net/alwaystry/article/details/60957096