从零开始SVM

从零开始SVM

概述


       SVM全称support vector machine,中文名支持向量机,是分类算法中应用广泛、效果不错的一类。李航的《统计学习方法》对SVM的数学原理做了详细推导与论述。由简至繁SVM可分类为三类:线性可分(linear SVM in linearly separable case)的线性SVM、线性不可分的线性SVM、非线性(nonlinear)SVM。
       支持向量机名称的由来是:仅由支持向量建立分类面,那么什么是支持向量呢?
从零开始SVM
       我们可以看上面这张图,总共有两类点,实心点和空心点,现在要将两类点分类,即求一条线,线的一边全是实心点,线的另一边全是空心点,离分类线最近的点称作支持向量(如图中虚线上的一个黑点和两个白点)。按照如图的情况,有无穷多的线可以将两类点分离,那么问题来了,哪一条分类线是最优的呢?也就是说:哪一条线在对于未知样本(测试样本)的分类中可以取得最好的效果呢?
       SVM的想法是:每一条分类线和支持向量与之间是有间隔的(如图中的实线和虚线),使得间隔最大的分类线就认为是最优的分类线

几何间隔与函数间隔

        那么我们怎么来定义这个“间隔”呢?
        首先,我们定义分类线:

ax+by+c=0

        假设存在一个点(x0,y0),它到分类线的距离(就是点到直线距离公式)是
d=|ax0+by0+c|a2+b2

        我们之前都是在二维的层面上讨论问题,现在我们将问题扩展之高维
        分类线转换成分类超平面
wx+b=0

优化目标

拉格朗日对偶与KKT条件

求解