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