SVM支持向量机

【转自】http://blog.sina.com.cn/s/blog_60707c0f0100xkwf.html


支持向量机即Support Vector Machine,SVM 实际上是一个分类器,一直被认为是效果最好的现成可用的分类算法之一。目前,SVM算法在很多领域都有应用。例如,在模式识别方面,对于手写数字识别、语音识别、人脸图像识别、文章分类等问题,SVM算法在精度上已经超过传统的学习算法。

SVM支持向量机

SVM主要有如下几个研究热点:模式识别,回归估计,概率密度估计。数据点用一个n维向量x来表示,我们先讨论两类分类的问题,用y来表示,取值1或-1表示不同的类别。该线性分类器就是要在n维的数据空间中找到一个超平面,其方程可以表示为

SVM支持向量机

通过这个超平面可以把两类数据分隔开来,如在超平面一边的数据点所对应的y全是-1,而在另一边全是1 。具体来说,我们令

SVM支持向量机

显然,如果f(x)=0,那么x是位于超平面上的点。我们不妨要求对于所有满足f(x)<0 的点,其对应的y等于-1,而f(x)>0则对应 y=1 的数据点。如下图所示,两种颜色的点分别代表两个类别,红色线表示一个可行的超平面。在进行分类的时候,我们将数据点x代入f(x)中,如果得到的结果小于0,则赋予其类别-1 ,如果大于0则赋予类别1。

SVM支持向量机

理想情况下我们当然希望f(x)的值都是很大的正数或者很小的负数,这样我们就能更好地能判断它是属于其中哪一类别的。从几何直观上来说,由于超平面是用于分隔两类数据的,越接近超平面的点越难分类,因为如果超平

面稍微转动一下,它们就有可能跑到另一边去了。反之,如果是距离超平面很远的点,例如图中的右上角或者左下角的点,则很容易分开其属于的类别。我们定义functional margin为         

SVM支持向量机

对于一个点x,令其垂直投影到超平面上的对应的为x0,由于w是垂直于超平面的一个向量,于是有如下式子:  

SVM支持向量机

由于x0是超平面上的点,满足 f(x0)=0,代入超平面的方程可得:

SVM支持向量机

因此实际上我们定义geometrical margin为:

SVM支持向量机

为了更好地找到超平面方程,我们固定好w,通过求解上式的最大值来确定分类情况,如果某超平面没有碰到任意一个点的话,那么我就可以进一步地扩充中间的间隙,而支撑这两个超平面的必定会有一些点叫做支持向量,由于这些点刚好在边界上,所以我们functional margin为1,对于所有不是支持向量的点,也就是在后方的点,则显然有functional margin大于1。

SVM支持向量机

从直观上讲,我们可以得到目标函数如下:

SVM支持向量机

为了更好地利用QP凸优化问题,我们可以进一步转化为:

SVM支持向量机

进一步我们可以利用拉格朗日对偶来找到其最优解,我们先构造如下式子:

SVM支持向量机

SVM支持向量机

根据拉格朗日求极值我们可以求其的偏导数并令其为零并代入目标式中得:

SVM支持向量机

SVM支持向量机

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值