SVM学习资料
SVM(support vector machine),被认为是“off-the-shelf”最好的监督机器学习算法之一,甚至很多人认为可以把“之一”去掉。SVM有着天然的intuition,大量的数学推导和优雅的解形式(有了大量的数学推导,自然就容易发paper啦)。实际上SVM在工业界也有着广泛的应用如,文本分类、图像分类、生物医学诊断和手写字符识别等。有关SVM资源非常之多,本文尝试总结一些比较好的SVM学习资源。
0.维基百科
如果想迅速的了解SVM一些基础概念,维基百科是一个不错的选择,SVM在维基百科的地址是:http://en.wikipedia.org/wiki/Support_vector_machine。虽然是一个基础性资源,但维基百科里面的有关SVM知识并不是那么简单,如果能理解维基百科里面的内容,说明你的数学功底还是相当厉害的。
1.课程资源
Stanford大学Andrew Ng教授的机器学习公开课,课程地址:http://v.163.com/special/opencourse/machinelearning.html。有关SVM的课程从第6课开始到第8课结束,横跨了3个课时。如果仅仅是视频可能还不够,需要阅读他的课件,课件的地址:http://cs229.stanford.edu/notes/cs229-notes3.pdf。第一次看这个课程视频可能比较吃力,需要反复的观看视频资源。如果能一步步的follow课程的内容,相信对SVM就会有很好的掌握。
2.博客资源
经过第一步的课程资源学习后,如果仍然对SVM一知半解,网络上的优秀博客资源将会是一个很好的补充与加强。
1)第一篇博客资源是leftnoeasy的SVM博文:http://www.cnblogs.com/LeftNotEasy/archive/2011/05/02/basic-of-svm.html。
2)第二篇博客资源是FreeMind的博文:http://blog.pluskid.org/?page_id=683。
3)第三篇博客资源是Leo Zhang:http://www.cnblogs.com/vivounicorn/。
三个博客的难度从易到难,三篇博客都非常精彩,第一篇博客非常适合作为学习SVM入门型资源,第二篇博客由浅入深的阐释了SVM,似有科学小品之感,最后一篇博客理论性非常强,并在博文最后用python实现了一个SVM分类器,如果想深入的理解SVM,第三个博客是不可错过资源。
3.论文&书籍资源
1)论文:
J.C. Burges的论文:<<A Tutorial on Support Vector Machines for Pattern Recognition>>;
Glenn M.Fung的论文:<<knowledge-Based Support Vector Machine Classifiers>>;
B. E. Boser, I. M. Guyon, and V .Vapnik的论文:<<A Training Algorithm for Optimal Margin Classifiers>>。
2)书籍:
John Shawe-Taylor & Nello Cristianini 的书:<<Support Vector Machines and other Kernel-based Learning Methods >>;
机器学习的经典教材,Bishop的书:<<Pattern Recogition and Machine Learing>>,第7章 <<Sparse Kernel Machines>>前面部分是有关SVM的论述;
Vapnik的经典著作:<<The Nature of Statistical Learning Theory>>。
4.Tooktiks
本节介绍SVM比较有名的开源工具:libsvm, svmlight, liblinear。
Libsvm是由台湾大学林智仁(Lin Chih-Jen)教授等开,国内用的较多一点,Svmlight 由卡内基梅隆大学Thorsten Joachims教授开发的工具包,Liblinear也是有台湾大学林智仁教授团队开发的工具包,针对大规模线性分类问题(大规模文本分类)。
三个工具包有各自的优点:libsvm与liblinear支持多分类问题,而svmlight并不支持多分类;svmlight与liblinear特别是在数据规模比较大的情况下,要比libsvm快;libsvm直接支持样本后验概率输出,但svmlight与liblinear并不直接支持;libliner仅能处理线性可分的问题。在实际过程中,需要依据自己的任务,选择合适的svm工具。