研究數據挖掘和機器學習有一段時間了,對數據挖掘來說,商用軟件有SAS、 Clementine、Oracle數據挖掘組件等等;由於個人學習和版權、算法定製等問題,開源的數據挖掘與機器學習軟件(庫)目前也十分必需,現在就 跟大家介紹下比較流行和常用的機器學習開源庫。
以前在學校用過matlab,說實話真方便,通常一個模型隻要幾十行甚至十幾行代碼就能搞 定,但是正版matlab較貴,而且不太適合商業開發使用,所以工業界使用它的並不多(通信行業、研究所比較普遍);相應地,在工業界機器學習和數據挖掘 的實驗語言多為java、python,因為 python與C\C++具有先天的血緣,所以python更容易擴展;java的機器學習庫也十分流行,主要體現在大數據下的jvm的本質和算法並行化 的優勢;現推薦給大家以下學習庫:
1.機器學習開源軟件網(收錄了各種機器學習的各種編程語言學術與商業的開源軟件)
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,還有可視化的功能,)
8 Mallet (基於JAVA實現的機器學習庫,主要用於自然語言處理方麵,特色是馬爾可夫模型和隨機域做得好,可和WEKA互補)
9 NLTK(PYTHON的自然處理開源庫,非常易用,也強大,還有幾本orelly的經典教程)
10 lucene(基於java的包括nutch,solr,hadoop,mahout等全套,是做信息檢索和搜索引擎的同誌們必學的開源軟件了,學JAVA的必學)
Additional:
1.pyml(a python module for machine learning,支持svm/knn/k-means==)
2.mahout(阿帕奇基金下項目,其主要是可以與hadoop進行天然結合,從而並行運行,在魯棒性方麵很好)
3.milk(python的機器學習工具包,主要是針對監督學習,包括svm/knn/決策樹)
http://pypi.python.org/pypi/milk/
4.Octave(Andrew NG課上推薦使用的,類似matlab)
http://www.gnu.org/software/octave/
本文轉載自:你我知