【嵌牛导读】:对于普通的线性可分问题,通常我们可以找到一条直线将数据分为两类,但是一般情况下我们找到的分类线不止一条,如何选择最优分类线是面临的问题。
【嵌牛鼻子】:SVM,线性可分,最优分类线选择
【嵌牛提问】:SVM算法用来解决什么问题?什么时候采用SVM算法?
【嵌牛正文】:
首先给出一个非常非常简单的分类问题(线性可分),我们要用一条直线,将图一中黑色的点和白色的点分开,很显然,图一的这条直线就是我们要求的直线之一,但是从图二可以看出将这些点分开的线不止有一条,那么选择哪一条就是面临的问题。
图一
图二
我们从图三,图四选择了两种不同的分法,如下:
图三
图四
我们可以观察到,图四上的直线相对于图一样本中的点距离远,在实践中分类效果也是优于图四,我们把图四上圈出来的点称为支持向量即support vector,而图四的黄色部分我们称为margine,我们的目的也就是要让这段间隔最大化。如图五所示,M的计算公式为
我们要最大化M即另W的二范数最小,为了方便求导我们将其先平方在其系数加上1/2,
但是当样本点出现在间隔中我们无法判定属于哪一类,因此为了确保样本点不在间隔内,我么那加入了约束条件
s.t的意思是subject to,也就是在后面这个限制条件下的意思,W为列向量。我们要求下面函数的最优解。转化为对偶问题。
利用拉格朗日乘子方法,求得最优解α*,然后继续求得w*,b*,即得到了分类的超平面w*x+b*=0;我们将决策函数写为f(x)=sign(w*x+b*)。至此我们便找到了分类面,这也就是svm算法的硬间隔问题。