什么是SVM?
支持向量机(Support Vector Machines, SVM),它是一种二分类模型,属于有监督学习算法。它的决策边界是对学习样本求解最大边距超平面(maximum-margin hyperplane)。
好吧,上面的解释并不是特别清楚,下面举例来说明一下SVM到底是什么。
便于理解,先从二维数据集开始。假如在平面上有圆圈和三角形,希望用一条直线来将它们分隔开。
这条直线,好像这么放是可以把它们分开的
但如果再增加几个圆圈和三角形(增加样本的数量),有的圆圈分错了
其实在第一次分开他们的时候,可以画很多条不同的线都能够将他们分开,但只有我们画的那条线,距离每个样本点都尽可能远的情况下,在新增加样本点后才不会出现有的样本被分错的情况,所以这条线可以这么画
SVM就是找到这个最佳的画线的位置,来把这两个类别很好地分开;
上边的两种类别的样本没有交叉混淆在一起,所以前面画线的时候还是很容易的,如果是下面这种情况,好像就没法轻易画一条线将他们分开了
在二维平面上,我们好像可以用曲线将他们分开
想象这些圆圈和三角形在一个三维空间中,那么就可以用一个平面将它们分开
上面的例子中,圆圈和三角形就是数据(data),最开始画的分隔线就是分类面(classifier),因为可以画很多条线来分开,但是要找最优的(即有最大的间隔),这个找最优的过程就是优化(optimization),让平面中的样本转到空间中就是核映射(kernelling),将它们分开的平面就是超平面(hyperplane)。