SVM学习总结(一)如何学习SVM

一、前言

前段时间一直在钻研SVM算法,原先一直觉得一个非常简单的算法,没想到在学的时候还挺难,主要还是对凸优化方面的知识不太熟悉,以后得加强,下面主要说说SVM算法的学习思路(对小白初学者)。

二、学习方法

通过各种资料的对比学习,我个人觉得使用李航的《统计学习方法》第七章,再辅助以网上的资料应该就差不多了,然后再写个SMO算法就可以了。(下文提到的书都指《统计学习方法》)主要学习步骤如下:
第一阶段:
(1)理解SVM思想
认真读一遍书中第七章第一节,看完后应该知道SVM大体的求解思想,如果看书看的不是很清楚可以在网上看看其他人写的教程,这个阶段主要以理解SVM思想为主。
第二阶段
(1)准备工作
认真看一遍书中的附录C(没学过凸优化的一定要看,你要不看的话,我可以非常确定,你一定理解不了SVM的求解思路)
(2)理解线性可分支持向量机、线性支持向量机、非线性支持向量机及核函数的重要作用
这个阶段应该将书上第七章全部精度一遍,一些证明也一定要看。
第三阶段:
(1)看懂SMO算法大体流程。
主要看书上SMO算法流程,如果看的一知半解,没关系,到源码中学习。
(2)实现SMO算法
如果有时间可以通过看书中7.4和SMO算法原论文自己构建一个,如果你没时间,可以看我稍后找的一个例子源码,初学不太建议直接看林智仁教授的libsvm算法,因为工程包中加入了一些算法加速的东西。
第四阶段:
(1)跑几个简单例子,然后慢慢变复杂。

四、一些好的学习资料推荐

1、kkt条件
(讲的比较好,看了此篇文章可以大体明白构造拉格朗日函数求极值的原因和KKT条件的由来)
http://blog.csdn.net/johnnyconstantine/article/details/46335763
2、拉格朗日乘子(不等式约束转化问题)
http://www.cnblogs.com/ooon/p/5721119.html
3、大名顶顶的台湾林智仁LIBSVM源码
http://www.csie.ntu.edu.tw/~cjlin/libsvm/
4、支持向量机通俗导论(理解SVM的三层境界)Latex版
http://vdisk.weibo.com/s/zrFL6OXKgnlcp
3、对libsvm算法注释
http://download.csdn.net/detail/learqq/6969311

你可能感兴趣的:(综合)