支持向量机(SVM,support vectors machine)的算法原理比较简单,就是寻找最大间隔讲两个类别分开,从数学上推可能复杂点。按照样本的情况一下三种:
①当训练样本线性可分时,通过硬间隔最大化——线性可分支持向量机;
②当训练样本近似线性可分时,通过软间隔最大化——线性支持向量机;
③当训练样本线性不可分时,通过核技巧和软间隔最大化——非线性支持向量机;
首先从线性可分支持向量机开始推导,要找到讲两个样本分隔开的超平面,且使两边到超平面距离最近的点到超平面距离之和最大。这个超平面表示为:
那我们就可以通过sign(y(x))来预测一个样本时属于正类还是负类。我们将分为正类的yi设为+1,负类为-1,即yi∈{+1,-1},对于超平面上下的点有:
点到超平面的距离为:
总可以缩放w的方式将分子的最小项(即离超平面最近的点)等于1,即令|y|≥1。这样原来的目标函数为
就变成了新的目标函数:
因为我们主要是想求得该目标函数时对应的w和b值,随意可以对目标函数稍作变化,原来的求解问题: