SVM(支持向量机)是典型的二分类的判别式模型,这种方法以Rosenblatt于1957年提出的感知机模型的基础上,都是通过训练一个分类超平面之后,作为分类的决策函数,然后对未知的样本进行预测。通过对输入特征使用法向量和截距 w=(w1,w2,...wn)、b 进行线性组合,得到超平面,最终的决策函数也和感知机一样,为符号函数 f(x)=sign(w⃗ ⋅x⃗ +b) ,符号函数大于0则为正类( w⃗ 指向的一侧)否则为负类( w⃗ 指向的对侧)。但SVM与感知机不同的是,SVM训练模型的策略是分类平面的间隔最大化。感知机利用误分类最小的策略求得超平面,此时当数据线性可分时是无穷多个的;SVM使用的间隔最大化求得分类超平面,因此得到的解是唯一的。
根据训练数据的特性,从模型的简单到复杂一共有三类不同的SVM模型,分别是:
1. 训练数据线性可分时,使用硬间隔最大化,得到线性可分SVM
2. 训练数据近似线性可分,使用软间隔最大化,得到软间隔线性SVM
3. 当训练数据线性不可分时,使用核方法将训练数据映射到高维可分的情况,并使用软间隔最大化,得到非线性SVM
间隔的定义
首先,回顾二维平面解析几何上,对于给定的直线 w1x+w2y+b=0 ,平面上任意一点 (xi,yi) 到该直线的距离 d 如下图所示:
设过
⎧⎩⎨⎪⎪x′−xiw1=y′−yiw2w1x′+w2y′+b=0
联立求解上述方程得到交点 (x′,y′) ,从而可以计算距离 d=(x′−xi)2+(y′−yi)2−−−−−−−−−−−−−−−−−−√ ,结果如下:
x′=w22xi−w1w2yi−bw1w21+w22y′=w21yi−w