機器學習的11個開源項目
機器學習是目前數據分析領域的一個熱點內容,在平時的學習和生活中經常會用到各種各樣的機器學習算法。實際上,基于Python、Java等的很多機器學習算法基本都被前人實現過很多次了。這些算法在網上可以找到很多,然而往往存在很多“臟”或者“亂”的開源代碼。
在這樣的背景下, InfoWorld近 日公布了機器學習領域11個最受歡迎的開源項目,這11個開源項目大多與垃圾郵件過濾、人臉識別、推薦引擎相關。它們大多數基于現今最流行的語言以及平 臺,推廣以及擴展了機器學習領域的很多重要算法。從中,用戶不但可以找到LDA等主題模型,也可以找到HMM等隱馬爾科夫模型。這些模型都是應用領域的熱 點,也是研究者們最需要的。
-
Scikit-learn是一個非常強大的Python機器學習工具包。它通過在現有Python的基礎上構建了NumPy和Matplotlib,提供了非常便利的數學工具。這個工具包包括了很多簡單且高效的工具,很適合用于數據挖掘和數據分析。
在主頁中,可以看到User Guide,這是整個機器學習的索引,其中用戶可以學到各種有效的方法。在Reference里,用戶可以找到各個類具體的用法索引。
-
Shogun是一個基于C++的最古老的機器學習開源庫,它創建于1999年。作為一個SWIG庫,Shogun可以輕松地嵌入Java、Python、 C#等主流處理語言中。它的重點在于大尺度上的內核方法,特別是“支持向量機”的學習工具箱。其中,它包括了大量的線性方法,如LDA、LPM、HMM等 等。
-
Accord是AForge.net的擴展,是一個基于.Net的機器學習與信號處理框架。它包括了一系列的對圖像和音頻的機器學習算法,如人臉檢測、 SIFT拼接等等。同時,Accord支持移動對象的實時跟蹤等功能。它提供了一個從神經網絡到決策樹系統的機器學習庫。
-
Mahout是一個廣為人知的開源項目,它是Apache Software旗下的一個開源項目,提供了眾多的機器學習經典算法的實現,旨在幫助開發人員更加方便快捷地創建智能應用程序。Mahout內包含了聚 類、分類、推薦等很多經典算法,并且提供了很方便的云服務的接口。
-
MLlib是Apache自己的Spark和Hadoop機器學習庫,它被設計用于大規模高速度地執行MLlib所包含的大部分常見機器學習算法。 MLlib是基于Java開發的項目,同時可以方便地與Python等語言對接。用戶可以自己設計針對MLlib編寫代碼,這是很具有個性化的設計。
-
H2O是0xdata的旗艦產品,是一款核心數據分析平臺。它的一部分是由R語言編寫的,另一部分是由Java和Python語言編寫的。用戶可以部署 H2O的R程序安裝包,之后就可以在R語言環境下運行了。H2P的算法是面向業務欺詐活著趨勢預測的,目前正在新一輪的融資中。
-
Oryx也是由Hadoop所設計的機器學習開源項目,由Cloudera Hadoop Distribution的創造者所提供。Oryx能夠讓機器學習的模型使用在實時的數據流上,如垃圾郵件過濾等。
-
GoLearn是谷歌所構建的Go語言的一體化機器學習庫,目標是簡單并且可定制。Go語言是谷歌的主打語言,目前使用已經越來越廣泛。GoLearn的簡單在于數據在庫內被加載和處理,因此能夠可定制地擴展數據結構以源碼。
-
>Weka是使用Java開發的用戶數據挖掘的開源項目。Weka作為一個公開的數據挖掘工作平臺,集合了大量能夠承擔數據挖掘人物的機器學習算 法,包括了對數據進行預處理、分類、回歸、聚類等等。同時,Weka實現了對大數據的可視化,通過Java設計的新式交互界面上,實現人與程序的交互。
-
CUDA是我們眾所周知的GPU加速套件。而CUDA-Convnet是一個基于GPU加速的神經網絡應用程序機器學習庫。它使用C++編寫,并且使用了NVidia的CUDA GPU處理技術。
目前,這個項目已經被重組成為CUDA-Convnet2,支持多個GPU和Kepler-generation GPUs. Vuples項目與之類似,使用F#語言編寫,并且適用于.Net平臺上。
-
ConvNetJS是一款基于JavaScript的在線深度學習庫,它提供了在線的深度學習訓練方式。它能夠幫助深度學習的初學者更快、更加直觀的理解算法,通過一些簡單的Demo給用戶最直觀的解釋。
感謝郭蕾對本文的審校。
給InfoQ中文站投稿或者參與內容翻譯工作,請郵件至editors@cn.infoq.com。也歡迎大家通過新浪微博(@InfoQ)或者騰訊微博(@InfoQ)關注我們,并與我們的編輯和其他讀者朋友交流。