支持向量机(SVM)是一种两类分类模型,基本模型是定义在特征空间上的间隔最大的线性分类器。它还包括核技巧,这使它成为实质上的非线性分类器。SVM的学习策略就是间隔最大化。假设给定一个特征空间上的训练数据集T={(x1,y1),(x2,y2),......(xN,yN)}, N 为特征数目,yi为标记。(xi,yi)为样本点。学习的目标是在特征空间中找到一个超平面,能够将实例分到不同的类。
一、 线性可分支持向量机
线性可分支持向量机针对于训练数据集线性可分,利用间隔最大化求最优分离超平面。
图 1
考虑如图所示的二维特征空间中的分类问题。图中“o”白表示正例,“+”表示反例。训练数据集线性可分时,可以找到一条直线将两类数据正确划分,并且间隔最大。
1、 函数间隔和几何间隔
图1所示,有A,B,C三个点,表示3个实例,均分离在超平面的反例的一侧,预测他们的类,点A离分离超平面较远,若预测该点为反例,则比较可信,点C离分离超平面较近,若预测该点为反例,则不太可信,点B在A,C之间,可信度在点A,C之间。
一般来说,一个点距离分离超平面的远近可以表示分类预测的确信程度。在超平面w*x+b=0确定的情况下,|w*x+b|能够相对的表示点x距离超平面的远近。而 w*x+b 的符号与类标记 y的符号是否一致能够表示分类是否正确,所以可以用 y(w*x+b)来表示分类的正确性和确信度。
函数间隔: 对于给定的训练数据集 T 和超平面 (w, b),定义超平面 (w, b)关于样本点 (xi,yi)的函数间隔为: