想研究下SVM,有什麼好的文章或者經驗之談可以分享下不?

SVM 數據挖掘 分類 拉格朗日運算元


推薦一下四條鏈接:

http://research.microsoft.com/pubs/67119/svmtutorial.pdf 來源於微軟研究院收集的資料

http://www.support-vector.net/icml-tutorial.pdf 來自於支持向量專門網址

http://www.cs.columbia.edu/~kathy/cs4701/documents/jason_svm_tutorial.pdf 來自哥倫比亞大學Kathleen R. McKeown教授

http://www.svms.org/tutorials/ 來自於支持向量機官網

btw:想學一個東西」+++「的時候,可以在google搜索「+++ tutorial/introduction/survey/overview」


看到很多人推薦了不少博客

進階教程推薦以下幾本(或其中對應章節):

1. Support Vector Machines | Ingo Steinwart | Springer

2. http://www.cs.huji.ac.il/~shais/UnderstandingMachineLearning/ 中有一個章節介紹SVM

3. Learning with Kernels


Jasper 的通俗版本 http://www.blogjava.net/zhenandaci/archive/2009/02/13/254519.html

pluskid寫的 支持向量機系列 ? Free Mind

以及leftnoteasy 寫的 機器學習中的演算法(2)-支持向量機(SVM)基礎


去用用 libsvm 找找感覺,看看他們的簡介


周志華教授的西瓜書、李航博士的《統計學習方法》,裡面都有具體的數學推導,兩者結合使用效果更佳。當然能看懂英文的話去看原論文更好。。


不用那麼麻煩。

老老實實推導一遍公式,怎麼從lagrangian multiplier變成dual form,怎麼上kernel,變成dual form之後怎麼套二次規劃的方法解出來。

老老實實拿numpy實現一遍。

就會了。


SVM科普,簡介:

我推薦csdn上面july的專欄支持向量機通俗導論(理解SVM的三層境界)

(這個博客July原創的東西不是很多,很多是由jerrylead和pluskid的文章整合而成,但對初學者來說還是值得看看。)

jerrylead 的blog : Machine Learning 。

還有pluskid(此君在浙大讀研,然後去了MIT讀PHD)的博客

Free Mind(新) http://blog.pluskid.org/(舊)

如果要更深層次就要去看paper了,svm的paper太多,有機會再來更新一下。

SVM綜述論文:

Advances of Large-scale Linear Classi?cation

http://www.csie.ntu.edu.tw/~cjlin/papers/survey-linear.pdfRecent

這篇綜述講的是SVM的幾種基本形式L1-Norm,L2-Norm,原問題,對偶問題等等,每一種形式都介紹了對應的解法,比較適合入門。不過它主要介紹線性的SVM,kernel方面講得不多。

工具下載:

林智仁的libsvm ,誰用誰知道

LIBSVM -- A Library for Support Vector Machines

這個是用於小規模數據,非線性kernel的(默認RBF核),速度慢但perfomance比較好

LIBLINEAR -- A Library for Large Linear Classification

這個是用於大規模數據(幾萬或以上),只有線性核,速度快得多

一般在學校做科研都是用林智仁的這個包,不過根據我本人和我同學的安裝經歷,必須要裝英文版的visual studio才能成功安裝libsvm,如果你的電腦裝的是中文版visual studio,貌似就沒辦法安裝成功。。。


推薦Andrew Ng在Stanford的CS299 Machine Learning和南京大學吳建鑫教授的Lecture Note:

http://cs229.stanford.edu/notes/cs229-notes3.pdf

https://cs.nju.edu.cn/wujx/paper/SVM.pdf

可以問自己以下幾個問題, 用來判斷自己對SVM的理解程度:

理論方面:

  • 為什麼間隔(margin)大的劃分超平面的泛化(generalization)能力更強?
  • 為什麼可以用支持向量(support vector)的個數來估計模型的泛化能力?

優化方面

  • 為什麼我們要優化對偶(dual)問題而不是原(prime)問題?
  • 為什麼LIBSVM等SVM軟體包使用SMO演算法進行優化, 而不是使用現成的二次規劃(QP)軟體包?

實踐方面:

  • 儘管深度學習方法十分強大, 為什麼線性核SVM仍然是文本分類問題最有效的方法?
  • 面對一個實際問題, 你如何選擇合適的核(kernel)函數?


理論方面推薦國內中科院田英傑老師的 《支持向量機:理論、演算法與拓展》。

實踐方面推薦台灣大學林志仁老師的LibSVM和Liblinear。


推薦一下july的理解svm的三層境界,由淺入深,適合初學者。


優酷搜索下faruto的視頻,有相關入門介紹。


推薦中科院田英傑老師的《支持向量機》,由淺入深,理論性很強,對於今後搞科研和推廣都會有很大幫助


謝謝分享


現在svm還有啥用么


先看下入門的

然後直接看作者的

人家老爺子還活著呢


libsvm的網站上有一些介紹的文章,講了這個軟體實現當中用了啥樣的演算法,寫得很清楚,特別是偽代碼給得非常詳細,感覺很有幫助。


svm資料太多了,最好去讀讀統計學習方法,這個介紹最全面和最詳細。


如果真的想學深一點 可以看看最優化的知識 算是基礎


http://www.blogjava.net/zhenandaci/archive/2009/02/13/254519.html


看看vapink 的支持向量機導論。libsvm有個註解版的也可以參考


http://www.nyuinformatics.org/downloads/supplements/SVM_Tutorial_2010/Final_WB.pdf

加上July的

支持向量機通俗導論(理解SVM的三層境界)


我最近因為畢設在看svm。

libsvm是很好學,但是svm的原理不太好懂。

但是!!自從昨天我找到一個博客!!!就全懂了!!

SVM入門(一)至(三)Refresh


推薦閱讀:

SVM中,高斯核為什麼會把原始維度映射到無窮多維?
KNN 與 SVM 的區別是什麼?
支持向量機中的函數距離和幾何距離怎麼理解?
支持向量機(SVM)是否適合大規模數據?
為什麼支持向量機要用拉格朗日對偶演算法來解最大化間隔問題?

TAG:數據挖掘 | SVM | 分類演算法 |