新聞中心
在經(jīng)歷了數(shù)十年單純作為專業(yè)學(xué)科的潛伏期之后,機(jī)器學(xué)習(xí)突然之間在技術(shù)前沿與核心領(lǐng)域贏得了一席之地、并開始作為業(yè)務(wù)工具呈現(xiàn)在我們面前。不過目前***的難題是如何使其具備實(shí)效,特別是對(duì)于那些需要處理相關(guān)工作的開發(fā)人員與尚處在萌芽狀態(tài)的數(shù)據(jù)科學(xué)家們。

為了找到答案,我們整理出了一些最為常見且具備實(shí)用價(jià)值的開源機(jī)器學(xué)習(xí)工具,通過今天的文章與各位朋友共享。
Python: 數(shù)據(jù)科學(xué)家們紛紛投身于Python懷抱,希望利用它來作為R語言等分析型語言的開放式替代方案,目前也有不少企業(yè)雇主正積極尋找具備大數(shù)據(jù)處理經(jīng)驗(yàn)的人才、其中熟練使用Python就是最重要的必備技能之一。有鑒于此,一直在不斷擴(kuò)大的Python軟件名單中開始出現(xiàn)大量與機(jī)器學(xué)習(xí)密切相關(guān)的資源庫。
首先要提到的推薦選項(xiàng)就是scikit-learn(官方網(wǎng)站:http://scikit-learn.org/stable/)。它能夠加載至算法與模塊當(dāng)中,在GitHub上受到了廣泛贊賞(fork版本數(shù)量接近2000),而且贏得了眾多業(yè)界巨頭的青睞。另一位緊隨其后的選手是PyBrain(官方網(wǎng)站:http://www.pybrain.org/),它的設(shè)計(jì)目的在于降低使用難度并提供與其它強(qiáng)大工具相對(duì)接的能力。顧名思義,PyBrain的關(guān)注重點(diǎn)在于神經(jīng)網(wǎng)絡(luò)與非監(jiān)督式學(xué)習(xí),它同時(shí)也提供一套用于培訓(xùn)與重新定義算法的機(jī)制。
Go: 作為谷歌打造的系統(tǒng)語言,Go的設(shè)計(jì)重點(diǎn)在于并行機(jī)制,而這似乎正是最適合編寫機(jī)器學(xué)習(xí)庫的理想環(huán)境。雖然目前與之相關(guān)的庫項(xiàng)目規(guī)模尚小甚至可以說是剛剛萌芽,但也已經(jīng)有一些通用型方案值得加以關(guān)注。其中最受推崇的要婁GoLearn(官方網(wǎng)站:https://github.com/sjwhitworth/golearn),其開發(fā)者將其描述為一套“內(nèi)置電池”的機(jī)器學(xué)習(xí)庫。它提供過濾、分類以及回歸分析等多種工具。另一套較小且更為基礎(chǔ)的庫是mlgo(官方網(wǎng)站:https://code.google.com/p/mlgo/),雖然目前它能提供的算法數(shù)量還少得可憐,但計(jì)劃在未來推出更多相關(guān)成果。
Java on Hadoop: Mahout(在印地語中意味著‘象騎兵’,官方網(wǎng)站:https://mahout.apache.org/)當(dāng)中包含有多種常見的機(jī)器學(xué)習(xí)方案,足以在每一位用戶偏愛的大數(shù)據(jù)框架中實(shí)際起效。這款軟件包以算法為關(guān)注重點(diǎn)而非方法,因此使用者需要對(duì)算法具備一定程度的理解。換句話來說,如果大家認(rèn)真學(xué)習(xí),肯定不難看出其各部分功能是如何被整合在一起的;舉例來說,大家完全可以通過寥寥數(shù)行代碼構(gòu)建起基于用戶的推薦系統(tǒng)。
Cloudera公司推行的Oryx(官方網(wǎng)站:https://github.com/cloudera/oryx)又是另一個(gè)基于Hadoop的機(jī)器學(xué)習(xí)項(xiàng)目,其特性在于通過交付實(shí)時(shí)流結(jié)果而非處理批量作業(yè)來對(duì)Mahout處理結(jié)果進(jìn)行進(jìn)一步分析。遺憾的是,目前該項(xiàng)目尚處于初始階段——注意,這只是個(gè)項(xiàng)目而非實(shí)際產(chǎn)品——但它不斷演變與改善的步伐為自己贏得了獲取關(guān)注的資本。
Java: 與前面提到的、主要面向Hadoop的Mahout不同,還有其它一些面向Java機(jī)器學(xué)習(xí)庫同樣具備廣泛的使用受眾。由新西蘭懷卡托大學(xué)創(chuàng)建的Weka(官方網(wǎng)站:http://www.cs.waikato.ac.nz/~ml/weka/)就是一款工作臺(tái)類的應(yīng)用程序,它在常見的算法集合當(dāng)中加入了虛擬化與數(shù)據(jù)挖掘功能。對(duì)于那些希望為工作內(nèi)容打造一套前端并有意利用Java進(jìn)行初始開發(fā)的用戶來說,Weka可能是各位起步的***選擇。另一套更加傳統(tǒng)的庫,Java-ML(官方網(wǎng)站:http://java-ml.sourceforge.net/)也能確切起效,但它更適合那些已經(jīng)習(xí)慣了將Java與機(jī)器學(xué)習(xí)配合使用的朋友。
JavaScript: 大家可能都聽說過“亞特伍德定律”這個(gè)笑話,大意是說任何能夠由JavaScript所編寫的內(nèi)容最終都會(huì)由JavaScript進(jìn)行編寫,這一理論在機(jī)器學(xué)習(xí)庫領(lǐng)域同樣正確。當(dāng)然,目前JavaScript編寫而成的方案在這一領(lǐng)域數(shù)量仍然相對(duì)較小——其中大多數(shù)選項(xiàng)都僅僅是單一算法而非完整的庫——但已經(jīng)有部分實(shí)用性工具漸漸脫穎而出。ConvNetJS(官方網(wǎng)站:http://cs.stanford.edu/people/karpathy/convnetjs/)允許大家直接在瀏覽器當(dāng)中進(jìn)行神經(jīng)網(wǎng)絡(luò)培訓(xùn)、從而實(shí)現(xiàn)深層學(xué)習(xí),而名為brain(官方網(wǎng)站:https://github.com/harthur/brain)的項(xiàng)目則能夠以可安裝NPM模塊的形式交付神經(jīng)網(wǎng)絡(luò)。此外,Encog(官方網(wǎng)站:https://github.com/encog/encog-javascript)庫同樣值得關(guān)注,而且它適用于多種平臺(tái):Java、C#、C/C++以及JavaScript。
英文:http://www.infoworld.com/t/predictive-analytics/5-ways-add-machine-learning-java-javascript-and-more-247535
本文題目:將機(jī)器學(xué)習(xí)帶入Java與JavaScript等編程語言的五種方式
網(wǎng)址分享:http://www.dlmjj.cn/article/djoejjd.html


咨詢
建站咨詢
