想研究下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?cationhttp://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)是否適合大規模數據?
※為什麼支持向量機要用拉格朗日對偶演算法來解最大化間隔問題?