支持向量机(Support Vector Machine)在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。
小样本,不是指样本的绝对数量少(对任何算法来说,更多的样本几乎总是能带来更好的效果),而是说与问题的复杂度比起来,SVM算法要求的样本数是相对比较少的。
非线性,是指SVM擅长应付样本数据线性不可分的情况,主要通过松弛变量和核函数技术来实现,这一部分是SVM的精髓。
高维模式识别,是指样本维数很高,例如文本的向量表示,如果没有经过降维处理,出现几万维的情况很正常,而SVM 产生的分类器很简洁,用到的样本信息很少(仅仅用到那些“支持向量”的样本),使得即使样本维数很高,也不会给存储和计算带来大麻烦。
1. 模型原理
如图所示,现有一个二维平面,平面上有两种不同的数据,分别用o和×表示。这些数据是线性可分的,可以用一条直线将这两类数据分开,这条直线就相当于一个超平面,将这两类数据分开。
实际上,这个超平面就是感知机,而对于感知机而言,分类超平面是不唯一的。
支持向量机SVM的思想则是以充分大的确信度将两类数据分开,即是这条分离超平面离两边的数据的间隔最大。所以,要寻找有着几何间隔最大的超平面。
1.1 函数间隔和几何间隔
对超平面 可以表示点x到距离超平面的远近,而如果分类正确,类标号y=1,否则为-1。所以可以用的正负性来表示分类的正确性.
函数间隔定义为:
对于训练数据集来说,所有样本点(xi,yi)中的函数间隔最小值便为超平面(w, b)关于训练数据集T的函数间隔:
几何间隔定义为:
同样的,所有样本点(xi,yi)中的几何间隔最小值便为超平面(w, b)关于训练数据集T的几何间隔:
1.2 间隔最大化
所谓的最大间隔分类器,对应的目标函数为 即几何间隔最大,同时需要满足 ,也就是说所有样本点中最小的函数间隔都要比优化结果