今天想说的呢是SVM支持向量机(support vector machine),我觉得这个算法它初始出发的想法真的是非常符合人性,特征空间上间隔最大的分类器,你随便问一个人分开空间上的两坨点最佳的平面是什么,他的直觉也会告诉他是介于两坨之间然后比较中间的那个位置,如果不说人话,那就是SVM。
对于SVM呢,主要分为以下几种情况。
1 线性可分SVM
2 线性SVM
3 非线性SVM
针对每一个概念和它应用的情况,接下来我们详细讨论,首先引入几个概念。
第一, 线性可分。
对于两类样本,总存在着这样若干个超平面(wx+b)可以把两类完全正确的分开,那我们就称这个数据是线性可分的。退化到二维空间上来说,就是可以用若干条直线将两类数据完全正确地分开,那么这个样本就称为线性可分的。
第二, 函数间隔。
想必大家高中都学过,点(x1,y1)到直线Ax+By+C的距离是|Ax1+By1+C|/sqrt(A^2+B^2),推广到高维空间上就是样本x到超平面wx+b=0的距离是|wx+b|/||w||。假如样本分为正负两类分别用+1-1表示,那么如果分类正确的话y(wx+b)=|wx+b|,所以我们y(wx+b)这个值既能表明我们分类是否正确,还能通过距离的远近表明分类正确的确信度,所以我们把它定义为函数间隔。
第三, 几何间隔。
上面已经提到了函数间隔的概念,但有一个问题就是,对于超平面而言,只要w和b成比例的变化,那么超平面是不变的,但这样的话函数间隔就发生了变化。因此函数间隔我们是可以控制它的范围的,用它除一个w的二次模,就能得到一个定值,我们把y(wx+b) /||w||定义为几何间隔,分类正确时就表明样本到超平面的距离。
好的,有了以上这些概念我们就可以进一步探讨SVM了。
===================================================================
线性可分SVM:
对于线性可分的数据而言,我们自然有无数个超平面用于划分分类,但对每一种分类方式,其最小的几何间隔可求,当这个最小几何间隔最大的时候,上面也说了,其实意味着划分正确的确信度最高,是我们寻求的最优解。
所以,优化目标就变成了