对svm的理解

原创 2016年08月29日 13:33:59

在搜索了很多资料后终于搞明白了SVM,对几个关键的部分做一些记录。
SVM的全称Support Vector Machine,中文名支持向量机,是一种分类算法,常见于二分类问题,和常见的二分类算法不同,该算法是在两类(或多类,以下简写为两类)标记之间找到离两类标记最远的一个超平面来分割数据,比如二维点就是找一条线来分割,三维点就是找一个平面来分割,n维数据找一个n-1维超平面来分割。
如何找这个超平面是最关键的部分,也就是算法需要计算的部分,在这我记录以下数学推导。这里写图片描述
在两个超平面之间距离为图中的m(可以根据几何推导,和二维类似)要最大化,只要使||w||最小化,即让它最小,这个||w||指的是它的模,也就是让w^2最小,为了求导之后消去系数,我们让w^2/2最小。还有一个限制条件,就是所有的点都在H1和H2之外,即yi (wTxi + b)>=1。我们所求的是这里写图片描述第二个是约束条件
接下来我们要使用拉格朗日乘数法来优化这个问题,使w^2/2最小,构造拉格朗日函数这里写图片描述
对w、b分别求偏导,得这里写图片描述,代入到拉格朗日函数这里写图片描述,得这里写图片描述
这里我有一个问题开始没有搞明白,就是为什么含aiyi的项全部消掉了,其实这是因为kkt条件下(参见http://www.cnblogs.com/zhangchaoyang/articles/2726873.html这里写图片描述是能推导出一定是ai=0或yi=0不会是我之前想的情况有正有负- -

参考资料
1.http://www.cnblogs.com/zhangchaoyang/articles/4306833.html
2.http://blog.csdn.net/zouxy09/article/details/17291543(包括松弛变量的部分)

版权声明:本文为博主原创文章,未经博主允许不得转载。

python实现用SIFT+K-MEANS+SVM图片分类

用python实现图片分类过程: 1. 按图片类别抽取训练集中所有图片的SIFT特征; 2. 将每一类图片的SIFT特征聚类为K类,构成该类的visual vocabulary(其size为K); ...

机器学习实战python实例(2)SVM

以下代码涉及到的公式推导参照于以下两篇文章,数学推导的部分写的非常好!(如果不了解数学推导过程,代码中的一些部分很可能看不懂) http://www.thebigdata.cn/JieJueFang...

支持向量机通俗导论(理解SVM的三层境界)

支持向量机通俗导论(理解SVM的三层境界) 作者:July 。致谢:pluskid、白石、JerryLead。 说明:本文最初写于2012年6月,而后不断反反复复修改&...

开发者自述:我是怎样理解支持向量机(SVM)与神经网络的

囫囵吞枣看完SVM,个人感觉如果不好好理解一些概念,或说如果知其然而不知其所以然的话,不如不看。因此我想随便写一写,把整个思路简单地整理一遍。: )...

最易理解的SVM入门教程

  • 2013年04月16日 16:46
  • 380KB
  • 下载

最易理解的SVM入门教程

  • 2015年08月04日 11:46
  • 387KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对svm的理解
举报原因:
原因补充:

(最多只允许输入30个字)