25個Java機器學習工具和庫
1. Weka集成了數(shù)據(jù)挖掘工作的機器學習算法。這些算法可以直接應用于一個數(shù)據(jù)集上或者你可以自己編寫代碼來調(diào)用。Weka包括一系列的工具,如數(shù)據(jù)預處理、分類、回歸、聚類、關(guān)聯(lián)規(guī)則以及可視化。
2.Massive Online Analysis(MOA)是一個面向數(shù)據(jù)流挖掘的流行開源框架,有著非?;钴S的成長社區(qū)。它包括一系列的機器學習算法(分類、回歸、聚類、異常檢測、概念漂移檢測和推薦系統(tǒng))和評估工具。關(guān)聯(lián)了WEKA項目,MOA也是用Java編寫的,其擴展性更強。
3.MEKA項目提供了一個面向多標簽學習和評價方法的開源實現(xiàn)。在多標簽分類中,我們要預測每個輸入實例的多個輸出變量。這與“普通”情況下只涉及一個單一目標變量的情形不同。此外,MEKA基于WEKA的機器學習工具包。
4. Advanced Data mining And Machine learning System(ADAMS)是一種新型的柔性工作流引擎,旨在迅速建立并保持真實世界的復雜知識流,它是基于GPLv3發(fā)行的。
5. Environment for Developing KDD-Applications Supported by Index-Structure(ELKI)是一款基于Java的開源(AGPLv3)數(shù)據(jù)挖掘軟件。ELKI主要集中于算法研究,重點研究聚類分析中的無監(jiān)督方法和異常檢測。
6. Mallet是一個基于Java的面向文本文件的機器學習工具包。Mallet支持分類算法,如***熵、樸素貝葉斯和決策樹分類。
7. Encog是一個先進的機器學習框架,集成了支持向量機(SVM)、人工神經(jīng)網(wǎng)絡、遺傳算法、貝葉斯網(wǎng)絡、隱馬爾可夫模型(HMM)、遺傳編程和遺傳算法。
8. Datumbox機器學習框架是一個用Java編寫的開源框架,允許快速地開發(fā)機器學習和統(tǒng)計應用。該框架的核心重點包括大量的機器學習算法以及統(tǒng)計測試,能夠處理中等規(guī)模的數(shù)據(jù)集。
9. Deeplearning4j是使用Java和Scala編寫的***個商業(yè)級的、開源的、分布式深入學習庫。其設計的目的是用于商業(yè)環(huán)境中,而不是作為一個研究工具。
10. Mahout是一個內(nèi)置算法的機器學習框架。Mahout-Samsara幫助人們創(chuàng)建他們自己的數(shù)學,并提供了一些現(xiàn)成的算法實現(xiàn)。
11.Rapid Miner是德國多特蒙特技術(shù)大學開發(fā)的。它為開發(fā)者開發(fā)應用程序提供了一個GUI(圖形用戶界面)和Java API。它還提供了一些機器學習算法,用來做數(shù)據(jù)處理、可視化以及建模。
12. Apache SAMOA是 一個機器學習(ML)框架,內(nèi)嵌面向分布式流ML算法的編程抽象,并且允許在沒有直接處理底層分布式流處理引擎(DSPEe,如 Apache Storm、Apache S4和Apache samza)復雜性的情況下,開發(fā)新的ML算法。用戶可以開發(fā)分布式流ML算法,而且可以 在多個DSPEs上執(zhí)行。
13. Neuroph通過提供支持創(chuàng)建、訓練和保存神經(jīng)網(wǎng)絡的Java網(wǎng)絡庫和GUI工具,簡化了神經(jīng)網(wǎng)絡開發(fā)。
14. Oryx 2是一個建立在Apache Spark和Apache Kafka的Lambda架構(gòu)實現(xiàn),但隨著實時大規(guī)模機器學習而逐漸開始專業(yè)化。這是一個用于構(gòu)建應用程序的框架,但也包括打包,以及面向協(xié)同過濾、分類、回歸和聚類的端到端的應用程序。
15. Stanford Classifier是一個機器學習工具,它可以將數(shù)據(jù)項歸置到一個類別。一個概率分類器,比如這個,它可以對一個數(shù)據(jù)項給出類分配的概率分布。該軟件是***熵分類器的一個Java實現(xiàn)。
16.io是一個Retina API,有著快速精確的類似大腦的自然語言處理算法。
17.JSAT是一個快速入門的機器學習庫。該庫是我在業(yè)余時間開發(fā)的,基于GPL3發(fā)行的。庫中的一部分內(nèi)容可自主學習,例如所有的代碼都是獨立的。JSAT沒有外部依賴,而且是純Java編寫的。
18. N-Dimensional Arrays for Java(ND4J)是一個用于JVM的科學計算庫。它們是用來在生產(chǎn)環(huán)境中使用的,這表明例程的設計是以最小的內(nèi)存需求來運行的。
19. Java Machine Learning Library(Java機器學習庫)是一系列機器學習算法的相關(guān)實現(xiàn)。這些算法,無論是源代碼還是文檔,都編寫的很出色。其主要語言是Java。
20. Java-ML是一個使用Java編寫的一系列機器學習算法的Java API。它只提供了一個標準的算法接口。
21. MLlib (Spark)是Apache Spark的可擴展機器學習庫。雖然是Java,但該庫與平臺還支持Java,Scala和Python綁定。此庫是***的,并且算法很多。
22. H2O是用于智能應用的機器學習API。它在大數(shù)據(jù)上對統(tǒng)計學、機器學習和數(shù)學進行了規(guī)?;?。H2O可擴展,開發(fā)者可以在核心部分使用簡單的數(shù)學知識。
23. WalnutiQ是人腦部分面向?qū)ο竽P?,有著理論常用的學習算法(正在向簡單強烈的情感人工智能模型方向研究)。
24. RankLib是一個排名學習算法庫。目前已經(jīng)實現(xiàn)八種流行的算法。
25. htm.java(基于Java的Hierarchical Temporal Memory算法實現(xiàn))是一個面向智能計算的Numenta平臺的Java接口。源碼