5種方式將機器學習帶到Java、Python以及Go等程式語言

csdn發表於2014-08-15

  機器學習似乎在一夜之間從默默無聞的小卒變成萬眾矚目的焦點,關於機器學習的開源工具也越來越多,但是目前的挑戰是,如何讓對機器學習感興趣的開發者和準備使用它的資料科學家們真正使用上它們,本文蒐集了幾種語言中常見且實用的開源機器學習工具,非常值得關注,本文來自 InfoWorld。

  以下為原文:

  經過幾十年作為一門專業學科的發展後,機器學習似乎一夜之間作為萬眾矚目的商業工具出現在我們面前。目前面臨的挑戰是如何讓其具備實效,尤其是對開發者和正準備使用它的資料科學家們。

  為此,我們蒐集了一些最常見的且實用的開源機器學習工具,通過本文分享給大家。

  Python

  資料科學家們投身Python懷抱是希望有另一種更開放式的選擇方案來替代R語言,如今許多僱主尋求大資料專家,而Python就是必需的技能。因此,大量的機器學習軟體庫開始出現在不斷擴大的Python軟體名單中。

  首先推薦的是 scikit-learn,它能夠載入至演算法與模組當中,在GitHub(fork版本數量接近2000)上受到了廣泛讚賞,並受到了許多科技巨頭的青睞。另一個緊隨其後的是 PyBrain,它的設計目的在於降低使用難度並提供與其它強大工具相對接的能力。顧名思義,PyBrain的關注重點在於神經網路與非監督式學習,它同時也提供一套用於培訓與重新定義演算法的機制。

  Go

  谷歌的系統語言,由於其並行設計,使其似乎是一個編寫機器學習庫理想的環境。雖然目前與之相關的庫專案規模尚小,但也有一些值得關注, GoLearn,它的開發者將其描述為一個“內建電池”的機器學習庫。它提供過濾、分類以及迴歸分析等多種工具。另一套較小且更為基礎的庫是mlgo,雖然目前它能提供的演算法數量還非常少,但計劃在未來推出更多。

  Java on Hadoop

  在人們喜愛的大資料框架中,Mahout(在印地語中意思是“大象騎士”)包含幾種常見的機器學習方法。這款軟體包是圍繞演算法而非方法,所以你需要有一定的演算法基礎,換言之,如果你足夠認真,就肯定不難看出其各部分功能是如何整合在一起的,例如,你可以通過幾行程式碼構建起基於使用者的推薦系統。

  另一個基於Hadoop的機器學習專案是Cloudera公司推行的Oryx,其特性在於通過交付實時流結果而非處理批量作業來對Mahout處理結果進行進一步分析。該該專案現在還處於初始階段,注意,這只是個專案而非實際產品,但它在不斷改善,所以很值得關注。

  Java

  除了上述主要針對Hadoop的Mahout,其他一些面向Java的機器學習庫也在廣泛使用。 Weka由紐西蘭懷卡託大學開發的工作臺式的應用,它在常見的演算法集合中增加了視覺化和資料探勘功能。對於那些想要為他們的工作打造一個前端或者計劃將Java作為初始開發的使用者來說,Weka可能是最好的選擇。 Java-ML也不錯,但它更適合那些已經習慣將Java和機器學習配合使用的開發者。

  JavaScript

  關於JavaScript的笑話(“阿特伍德定律”),原意是這樣的,任何能夠由JavaScript編寫的內容最終都會由JavaScript編寫,這對機器學習庫同樣適用。目前由JavaScript編寫的方案在這一領域數量仍然相對較少,大多數選項僅僅是單一演算法而非完整的庫,但已經有部分有用工具漸漸脫穎而出。 ConvNetJS允許大家直接在瀏覽器當中進行深度學習神經網路培訓,而名為 brain則將神經網路作為可安裝的NPM模組提供給大家。此外, Encog庫同樣值得關注,而且它適用於多種平臺:Java、C#、C/C++以及JavaScript。

  原文連結:5 ways to add machine learning to Java, JavaScript, and more

相關文章