SVM(支持向量机)算法介绍

最近正好有时间将SVM的推导整理一遍,借此文章记录自己的学习过程, 在本文中借鉴了T老师的讲义和一些博文,以及李航的统计学习方法,若有不足之处,望海涵。

SVM

svm算法通俗的理解在二维上,就是找一分割线把两类分开,问题是如下图三条线都可以把红色点和黄色点分开,但哪条线是最优的呢?如果数据本身比较难分怎么办?这都是我们要考虑的问题。 

决策边界:选出离样本点最远的线段。

我们需要让距离决策边界最近的点之间的距离最远。

1.距离的计算

 x' x"所在平面的表达式为:W^{^{t}}X + b = 0 ,其中,W为平面的法向量。

我们需要求得x到平面的距离dist(x, h), 那么我们只要求得xx'的距离, 然后对平面做竖直方向上的投影(既点x到平面的距离)即可。计算过程如下:

然后得到距离公式: 

2.数据标签定义

 

3. SVM的优化目标

我们需要找到一条线(w和b),使得离该线段最近的点之间的距离最远,由上面的距离公式和数据的决策方程我们可以得出:

点到直线的距离为:

进而得到优化目标:

决策方程(w,b)可以进行放缩变换,使得其结果值|y|>=1:

 

4. 优化目标的求解

将目标函数进行转换:求最值大问题即求倒数最小值问题, 加入常数不影响(方便求导)

然后利用拉格朗日乘子法对其进行求解。

拉格朗日乘子法:

将我们需要求解的目标函数和约束条件通过拉格朗日进行计算:得到

多了个参数\alpha _{_{i}}

 把上式获取的参数代入公式优化max值:

化解到最后一步,就可以获取最优的a值:

求正数最大值,相当于求负数的最小值。

以上就可以得到了超平面。

发布了84 篇原创文章 · 获赞 108 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_42013574/article/details/93601375