1.SVM如何找出最大边际的超平面呢(MMH)?
利用一些数学推到,以上一节的公式可变为有限的凸优化问题(convex quadratic optimization)
利用Karush-Kuhn-Tucker)(KKT)条件和拉格朗日公式,可以推出MMH可以被表示为以下“决定边界(decision boundary)”
可以表示的公式:
其中: l 是支持向量点的个数
yi 是支持向量点 xi (support vector)的类别标记(class label)
xT (是要预测的实例,但必须是转置后的)
αi 和b0都是单一的值(都是通过解决优化问题算出来的具体的值 )
这个公式就是 边际最大化的 超平面,当有一个实例进来的时候 ,把它带入这个方程,看它是正的还是负的,通过它的符号就可 以对这个点进行归类。
2.对于任何测试(要归类的)实例,带入以上公式,得出的符号是正还是负决定
即实例是在建立的超平面的某一侧,用正负号来区分
3. 来看一个具体的例子:
一类用方框表示,一类用圆圈表示,对这个例子用SVM来做个分类
左边的点:
右边的点
如图::
:
假设已经求解到了几个支持向量的话,怎么才能知道这个超平面的方程
运算过程已经在图上写出了。可以解出ω0和a的值,解出之后代入公式,可解出这个超平面的
方程。
可以验证 把超平面上方的点代入方程就为大于0的,下方的话就是小于0的
下一节 在Python中实现SVM