解析支持向量机SVM

SVM是非常强大的一种分类算法。Support Vector Machine

一个好的分类是怎样的?

图中的两组数据,显然它们是线性可分(linear separable)的,图里给出的三条分界线都可以准确区分这两类数据,可见a是效果最好的。

我们画出a的两条平行线,距离分界线a最近的点会落在这两条平行线上,而我们的分界线就在a1和a2中间,这三条线看起开就想一条公路,把不同的点分隔在路的两旁,a1和a2之间的距离就是路宽,分类过程好比就是修建这么一条公路,并且路越宽越好。SVM要做的就是修建这条最宽的路。

注:分界线严格的来说是decision boundary,decision boundary 在二维空间是一条线,在三维空间是一个平面,更高维的空间里称作超平面。本文使用“分界线”代表decision boundary。

向量的概念和基本性质:

空间的点用向量来表示(以原点为起点的向量):

直线表达式:

对于 SVM 来说仅仅这样是不够的,还记得吗我们要修一条路出来,我们得确保在一条足够宽的路里面没有数据点:

这样前面的式子就可以写成更为简洁的形式:

什么是支持向量?

这是一个基于 KKT 条件的二次规划问题,优化原理的内容超出了这篇文章的范畴,在这里我们只要知道拉格朗日乘数法可以求得这个最优解,引入新的系数αi :

令以上两式为0,我们可以得到:


猜你喜欢

转载自blog.csdn.net/shaopeng568/article/details/79836354