一、SVM基础

支持向量机(SVM)是一种二分类模型,有别于感知机(误分类点到超平面的总距离),SVM的学习策略是间隔

最大化,当训练样本完全线性可分时,采用硬间隔最大化,称为线性可分支持向量机;当训练样本近似线

性可分时,增加松弛变量,采用软间隔最大化,称为线性支持向量机;在非线性问题中引入了核函数和软

间隔最大化,称为非线性支持向量机。

分离超平面:w * x + b = 0

样本点到分离超平面的距离:|w * x + b|

函数间隔:y(w * x + b),其中根据类标签y与(w * x + b)的符号是否一致,可以判断正确性,

y(w * x + b)的计算结果作为置信度

决策函数:f(x) = sign(w * x + b)

注意:1、当成比例改变w和b时,函数间隔可以取任何值,因此函数间隔最大化的学习策略没有意义;

2、可以注意到,当成比例改变w和b时,函数间隔与||w||的比值保持不变,这种比值形式称为几何间隔,

进一步讲,SVM的学习策略为几何间隔最大化。

二、SVM核函数

SVM核函数的基本思想是通过非线性变化将输入空间的数据映射到高维特征空间,然后采用线性可分支持

向量机或线性支持向量机进行学习。常用核函数包括线性核函数,多项式核函数和高斯核函数,其中高斯

核函数需要调参。

三、SVM多分类

针对多分类问题SVM的解决方案分为两种:直接法和间接法。直接法的基本思想是同时考虑所有类别的数据,

实现困难,计算复杂度高;间接法的基本思想(二分类的组合)包括:一对一(one-vs-one) & 一对多(one-

vs-rest),假设有N个类别的训练样本,“一对一”按照类别两两组合进行训练,然后进行二分类训练可形成

N*(N-1)/2个支持向量机,测试时投票表决得到分类类别;“一对多”需要重新划分数据集,依次将某种类别

的训练样本作为正例,其余类别的训练样本合在一起作为负例,然后进行二分类训练可形成N个支持向量机,

测试时选取置信度最高的结果。在大多数情况下,与第一种方法相比,第二种方法所需的SVM的个数较少,

测试速度较快,但是更易受样本类别不平衡的影响。

四、SVM小结

SVM的可解释性强,且适用于小样本训练集,在非线性问题中,核函数的引入使得SVM解决了非线性问题,但是

核函数的选择和调参较为敏感,SVM中的线性可分、近似线性可分和非线性问题最初均指二分类,后面随着应用

场景的增加,二分类的组合被广泛用于多分类。