支持向量机算法学习笔记(一)
1. 函数间隔与几何间隔
假设超平面为:
样本点
到超平面的函数间隔为:
由可知,若
则该样本为正样本;反之,则为负样本。
由函数间隔公式可知,若参数w和b成倍的增加,函数间隔亦会成倍的增加,为了统一度量,我们需要对超平面的法向量w加上约束条件,即几何间隔。
几何间隔的定义为:
2. 支持向量机算法原理
支持向量机的算法原理是最大间隔分类思想,即最大化正负样本的最小间隔,如下图:
选择一个超平面,使得正负样本的最小间隔最大,假设我们找到了最优超平面,使得正负样本的间隔最大,如下图:
平移超平面往上或往下,与超平面平行线相交的样本点为支持向量,如下图表示:
3. 支持向量机的目标函数
支持向量机的原理是最大化正负样本的最小间隔,因此目标函数为:
令最小的函数间隔为1,因此所有样本的函数间隔的约束条件为:
目标函数等价为:
为了便于计算,目标函数等价为:
4. 支持向量机目标函数的优化过程
我们利用拉格朗日函数将有约束的目标函数转换为无约束的目标函数:
其中,m表示样本总数
由于引用了拉格朗日乘子,优化的目标函数等价为:
目标函数的最优化问题转换为对偶问题:
我们先里到外去求解模型参数。
令偏导数等于0,即:
得到:
将上述参数等式代入目标函数,得:
该等式只包含α参数,因此函数可记为:
最大化上式,可得。
求解后,代入参数w与α的等式,得:
根据拉格朗日函数得KKT条件,得:
当α>0时,有:
即该样本点是支持向量,通过上式可求得参数b。
5. SVM算法过程总结
假设共有m个训练样本,如何计算SVM模型参数w和b
1) 由上节可知,最大化下式:
约束条件为:
求出参数α。
2)由参数α求出参数w:
3) 参数α大于0得样本是属于支持向量,根据这些样本求解对应得参数,有:
因此:
求所有满足α的所有样本的参数b的平均值,若α>0的样本共有M个,那么参数b的平均值为:
4)根据(2)(3),我们得到了参数w和b,因此超平面表达式为:
结果判断:
1)w*x + b >0 ,则为正样本;
2) w*x + b >0 ,则为负样本;
参考:
https://www.cnblogs.com/pinard/p/6097604.html
欢迎扫码关注: