機器學習之開源庫大總結

一隻鳥的天空發表於2014-05-26

機器學習之開源庫大總結

  研究資料探勘和機器學習有一段時間了,對資料探勘來說,商用軟體有SAS、Clementine、Oracle資料探勘元件等等;由於個人學習和版權、演算法定製等問題,開源的資料探勘與機器學習軟體(庫)目前也十分必需,現在就跟大家介紹下比較流行和常用的機器學習開源庫。

  以前在學校用過matlab,說實話真方便,通常一個模型只要幾十行甚至十幾行程式碼就能搞定,但是正版matlab較貴,而且不太適合商業開發使用,所以工業界使用它的並不多(通訊行業、研究所比較普遍);相應地,在工業界機器學習和資料探勘的實驗語言多為java、python,因為python與C\C++具有先天的血緣,所以python更容易擴充套件;java的機器學習庫也十分流行,主要體現在大資料下的jvm的本質和演算法並行化的優勢;現推薦給大家以下學習庫:

1.機器學習開源軟體網(收錄了各種機器學習的各種程式語言學術與商業的開源軟體)

http://mloss.org

2 偶爾找到的機器學習資源網:(也非常全,1和2基本收錄了所有ML的經典開源軟體了)

http://www.dmoz.org/Computers/Artificial_Intelligence/Machine_Learning/Software/

3 libsvm (支援向量機界最牛的,不用多說了,臺灣大學的林教授的傑作)

http://www.csie.ntu.edu.tw/~cjlin/libsvm/

4 WEKA (基於java的機器學習演算法最全面最易用的開源軟體)

http://www.cs.waikato.ac.nz/ml/weka/

5 scikit (本人最喜歡的一個基於python的機器學習軟體,程式碼寫得非常好,而且官方的文件非常全,所有都有例子,演算法也齊全,開發也活躍 
,強烈推薦給大家用)

https://pypi.python.org/pypi/scikit-learn/

6 OpenCv(最牛的開源計算機視覺庫了,前途無可限量,做影像處理與模式識別的一定要用,總不能整天抱著matlab做實驗和工業界脫節吧,但是有一定難度)

http://opencv.willowgarage.com/wiki/

7 Orange (基於c++和python介面的機器學習軟體,介面漂亮,呼叫方便,可以同時學習C++和python,還有視覺化的功能,)

http://orange.biolab.si/

8 Mallet (基於JAVA實現的機器學習庫,主要用於自然語言處理方面,特色是馬爾可夫模型和隨機域做得好,可和WEKA互補)

http://mallet.cs.umass.edu/

9 NLTK(PYTHON的自然處理開源庫,非常易用,也強大,還有幾本orelly的經典教程)

http://nltk.org/

10 lucene(基於java的包括nutch,solr,hadoop,mahout等全套,是做資訊檢索和搜尋引擎的同志們必學的開源軟體了,學JAVA的必學)

http://lucene.apache.org/

Additional:

1.pyml(a python module for machine learning,支援svm/knn/k-means==)

http://mlpy.sourceforge.net/

2.mahout(阿帕奇基金下專案,其主要是可以與hadoop進行天然結合,從而並行執行,在魯棒性方面很好)

http://mahout.apache.org/

3.milk(python的機器學習工具包,主要是針對監督學習,包括svm/knn/決策樹)

http://pypi.python.org/pypi/milk/

4.Octave(Andrew NG課上推薦使用的,類似matlab)

http://www.gnu.org/software/octave/

相關文章