您的位置:首頁>科技>正文

盤點:為 Java 開發者量身定制的五款機器學習庫

編者按:機器學習是目前最炙手可熱的技術之一, 各大公司都在積極招聘相關的程式猿, 來填補機器學習和深度學習代碼編寫的空缺。 誠然, 根據相關的招聘統計資料, Python 語言目前已經超越 Java 成為雇主最亟須的機器學習程式設計技能。 但事實上, Java 在專案開發中仍然發揮著不可替代的作用, 並且許多流行的機器學習框架本身就是由 Java 寫成的。 因此, 基於 Java 語言, 今天我們在這裡推薦五個業內頂尖的機器學習庫。 原文載於 jaxenter.com網站, 雷鋒網編譯。

Weka

地址:http://www.cs.waikato.ac.nz/ml/weka/index.html

毫無疑問, Weka 是目前首選的 Java 機器學習庫。

它由紐西蘭懷卡托大學(University of Waikato)的機器學習項目組研發。 其命名來源於一種紐西蘭特有的不會飛的鳥——紐西蘭秧雞, 紐西蘭秧雞的英文名稱就是 Weka。 按照官網描述, Weka 吸收了許多目前常用的機器學習演算法, 並且完全基於 Java 環境, 開源, 免費, 具有易於使用的圖形介面, 適合於資料採擷,

資料分析和預測建模等多種應用場景。

來自懷卡托大學的電腦科學教授 Eibe Frank 表示:“Weka 最大的優勢在於分類, 因此需要自動資料分類的應用程式可以從中獲益。 但同時它也支援資料預處理、聚類、關聯規則挖掘、時間序列預測、特徵選擇、和異常檢測等場景。 ”

開發者可以直接通過 Weka 軟體處理目標資料集, 同時也支援用戶在自己編寫的代碼中調用, 將 Weka 視為一個靈活的元件。 更貼心的是, 懷卡托大學還提供了許多免費的基於 Weka 的資料採擷和機器學習視頻教程, 感興趣的朋友可以在 Weka 官網點擊查看。

Massive Online Analysis (MOA)

地址:http://moa.cms.waikato.ac.nz/

和 Weka 一脈相承, MOA 的命名也是來源於一種紐西蘭特有的無翼大鳥——紐西蘭恐鳥(目前已滅絕)。 MOA 也是基於 Java 環境, 開源, 免費, 在面對複雜問題時, MOA 還能和 Weka 協同工作。

MOA 在運算效率和記憶體佔用方面都做了特殊優化, 通過提供易於擴展的底層結構、可複用的資料流程分析設置以及一系列內部實現好機器學習演算法, MOA 為即時資料流分析提供了一個非常優秀的基準框架, 因此在即時資料流挖掘領域的應用非常廣泛。

其內部實現的機器學習演算法包括:分類、回歸、聚類、孤立點檢測、概念漂移檢測和推薦系統等。 此外, MOA 還提供了多種評估工具, 以及活躍的社區討論、博客等配套資源。

Deeplearning4j

地址:https://deeplearning4j.org/

Deeplearning4j(Deep Learning For Java)是 Java 和 Scala 環境下的一個開源分散式的深度學習項目,

由總部位於美國三藩市的商業智慧和企業軟體公司 Skymind 牽頭開發, 並得到了騰訊的投資。 正如它的命名, Deeplearning4j 的運行需要 Java 虛擬機器 JVM 的支援。

去年, JAXenter 社區曾提名 Deeplearning4j 作為 Java 生態系統最具創新的貢獻者之一。

Deeplearning4j 旨在為工作在 Hadoop 框架下的 Java、Scala 和 Clojure 程式師提供一個可以靈活 DIY 的機器學習工具。 團隊在官網表示, 他們希望通過一些機器學習演算法的開發, 將商業帶入智慧化資料的時代。 也正是為了實現這一理想, 惠及更多的用戶, 因此選擇了移植性更好的 Java 環境來實現這些演算法。 目前, Deeplearning4j 在模式識別、時間序列檢測和基於語音、文本的情感識別方面應用廣泛, 包括穀歌、Facebook和微軟等巨頭公司都是它的用戶。

MALLET

地址:http://mallet.cs.umass.edu/

MALLET主要由來自麻省大學(University of Massachusetts)的Andrew McCallum教授和其學生開發,是一個基於 Java 環境的開源機器學習工具包。主要應用于統計自然語言處理,文檔分類,聚類,主題建模,資訊提取等文本類分析場景。

MALLET 內部實現了許多功能強大的工具,包括用於文檔分類的高級工具,用於序列標記的工具,和用於主題建模的工具等。MALLET 還支援各種類型的演算法,包括樸素貝葉斯,決策樹和最大熵等。此外,MALLET 還提供了許多常式,包括分詞,刪除停用詞,將文本轉換為向量表示等。

ELKI

地址:https://elki-project.github.io/

ELKI 的全稱是:Environment for Developing KDD-Applications Supported by Index-Structures,即由索引結構支援的 KDD 應用開發環境,這裡 KDD 是指 Knowledge Discovery in Database,即知識發現。

ELKI 也是一款知名的基於 Java 環境的資料採擷軟體。ELKI 的重點是演算法研究,強調聚類分析,資料庫索引和孤立點檢測等無監督方法。ELKI 可以對資料採擷演算法和資料管理任務進行各自獨立的分析,這在其他資料採擷框架(如 Weta 和 Rapidminer)中是獨一無二的。此外,ELKI 還支持各種資料類型和檔案格式,以及各種相似性度量方法。

ELKI 專為研究人員和學生設計,提供了大量可靈活配置的演算法參數,以便進行簡單和公平的演算法評估。目前 ELKI 已經被廣泛應用於各種資料科學的相關領域,包括鯨魚的回聲定位,航太飛行操作,共用單車分配和交通預測等。

雷鋒網相關閱讀:

Python、R、Java、 C++ 等:從業界回饋看機器學習語言趨勢

資料科學入門難?老司機為你盤點 24 門精品課程

MALLET主要由來自麻省大學(University of Massachusetts)的Andrew McCallum教授和其學生開發,是一個基於 Java 環境的開源機器學習工具包。主要應用于統計自然語言處理,文檔分類,聚類,主題建模,資訊提取等文本類分析場景。

MALLET 內部實現了許多功能強大的工具,包括用於文檔分類的高級工具,用於序列標記的工具,和用於主題建模的工具等。MALLET 還支援各種類型的演算法,包括樸素貝葉斯,決策樹和最大熵等。此外,MALLET 還提供了許多常式,包括分詞,刪除停用詞,將文本轉換為向量表示等。

ELKI

地址:https://elki-project.github.io/

ELKI 的全稱是:Environment for Developing KDD-Applications Supported by Index-Structures,即由索引結構支援的 KDD 應用開發環境,這裡 KDD 是指 Knowledge Discovery in Database,即知識發現。

ELKI 也是一款知名的基於 Java 環境的資料採擷軟體。ELKI 的重點是演算法研究,強調聚類分析,資料庫索引和孤立點檢測等無監督方法。ELKI 可以對資料採擷演算法和資料管理任務進行各自獨立的分析,這在其他資料採擷框架(如 Weta 和 Rapidminer)中是獨一無二的。此外,ELKI 還支持各種資料類型和檔案格式,以及各種相似性度量方法。

ELKI 專為研究人員和學生設計,提供了大量可靈活配置的演算法參數,以便進行簡單和公平的演算法評估。目前 ELKI 已經被廣泛應用於各種資料科學的相關領域,包括鯨魚的回聲定位,航太飛行操作,共用單車分配和交通預測等。

雷鋒網相關閱讀:

Python、R、Java、 C++ 等:從業界回饋看機器學習語言趨勢

資料科學入門難?老司機為你盤點 24 門精品課程

Next Article
喜欢就按个赞吧!!!
点击关闭提示