支持向量机(SVM)是一种可用于分类和回归的有效监督学习方法,是一种基于最大间隔的分类器。对于 SVM 的理解需要很多数学理论知识,尤其是对于拉格朗日对偶求解的理解。由于水平有限,文章并未用python实现SVM算法,而是用Scikit-learn中的libsvm来简单介绍下支持向量机的用法。
最大间隔的直观理解
对于一组数据集,我们希望用超平面很好的将其分类,以下以2D数据集举例,如下图所示。那么在2D数据集中的分类超平面即是线
很明显该数据集有多个解,可以有多条直线将数据集分类,但是什么才是最优解呢?这就是寻找最大间隔的意义。最优解通常要保证是稳定、可靠的决策界,下图中的“黑线”即是最优解,其中两条蓝线就是支持向量机。
多条直线“解”
数学模型表示
1.分类标签 yi 定义为+1和-1,方便表示和运算
2.假设一个超平面将数据集很好的分离,超平面的方程为 f(x)=wTx+b=0 ,那么在超平面的一侧的数据集 f(x)>=0 st. yi=1 而另一侧