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