當前位置:
首頁 > 最新 > 關於機器學習的11個開源工具

關於機器學習的11個開源工具

點擊"充實的腦洞"關注我!

翻譯:瘋狂的技術宅英文標題:11 open source tools to make the most of machine learning英文連接:https://www.infoworld.com/article/2853707/machine-learning/11-open-source-tools-machine-learning.html

使用這些多樣化、易於實現的庫和框架,挖掘機器學習的預測能力

垃圾郵件過濾,人臉識別,推薦引擎 —— 當你有一個需要執行預測分析或模式識別的大型數據集時,機器學習是一條途徑。 免費開源軟體的激增使機器學習更容易在單機和大規模集群上實現,並支持大多數流行的編程語言。這11個開源工具使用的語言包括Python,R,C ++,Java, Scala,Clojure,JavaScript和Go。

1、Scikit-learn

Python因為它的易用性,已經成為一種用於數學、科學和統計的編程語言,而且幾乎任何應用程序都可以使用這些庫。Scikit-learn 通過在幾個現有的 python 包( NumPy, SciPy 和 Matplotlib )可以被廣泛用於數學和科學工作。它可以被用在互動式「工作台」程序中,也可以嵌入到其他軟體中並被重用。該工具包在BSD許可證下提供,因此它是完全開放和可重用的。

Project:scikit-learn

GitHub:https://github.com/scikit-learn/scikit-learn

2、Shogun

著名的Shogun創建於1999年,儘管它是用C++編寫的,但可以與Java,Python,C#,Ruby,R,Lua,Octave和Matlab一起使用。最新版本 6.0.0 增加了對Microsoft Windows和Scala語言的本地支持。

雖然廣受歡迎,但是 Shogun 仍受到來自另外一個基於C++的機器學習庫的競爭:2011年出現的Mlpack。但是Shogun仍然自稱是比其他競爭者更快更易用的(通過一個更完整的API集)。

Project:Shogun

GitHub:https://github.com/shogun-toolbox/shogun

3、Accord.Net Framework

Accord是一個機器學習和信號處理框架,基於.Net編寫,是以前的項目AForge.net的延伸,Accord包括一組用於處理音頻信號和圖像流(例如視頻)的庫。其視覺處理演算法可用於臉部識別,拼接圖像或跟蹤移動物體等任務。

Accord還提供更傳統的機器學習功能的庫,包括神經網路和決策樹系統。

Project:Accord Framework/AForge.net

GitHub:https://github.com/accord-net/framework/

4、Apache Mahout

Apache Mahout長期以來一直被綁定到Hadoop,但是其中的許多演算法也可以脫離 Hadoop 運行。 這對可能最終遷移到 Hadoop 項目中的獨立應用非常有用,這些項目最終可能會被剝離到自己的獨立應用中。最後幾個版本加強了對高性能 Spark 框架的支持,並增加了對用於 GPU 加速的 ViennaCL 庫的支持。

Project:https://mahout.apache.org/

5、Spark MLlib

Apache Spark 和 Apache Hadoop 的機器學習庫。MLLib擁有許多最新的常用演算法和有用的數據類型,為速度和大規模運行需求所設計。雖然 Java 是 MLLib 的主要工作語言,但 Python 用戶可以將 MLLib 與 Numpy 庫整合,Scala用戶可以編寫針對MLLib的代碼,而R用戶可以嵌入到在 Spark 1.5 之後的版本中。

在MLLib的基礎之上構建的項目MLbase可以更容易得到結果。 用戶無需編寫代碼,只需要通過聲明語言(à la SQL)進行查詢。

Project:https://spark.apache.org/mllib/

6、H2O

H2O的演算法針對業務流程(例如欺詐或趨勢預測)而不是圖像分析。H2O能夠以獨立的方式與HDFS、YARN、MapReduce或者直接在Amazon EC2實例進行交互。Hadoop專家可以使用Java與H2O交互,該框架還提供了Python、R 和 Scala 的綁定方式,允許你與這些平台上的所有庫進行交互。

Project:http://0xdata.com/h2o/

GitHub:https://github.com/0xdata/h2o

7、Cloudera Oryx

Oryx,由 Cloudera Hadoop distribution 的創始人提供,通過Spark和Kafka流處理框架來運行機器學習模型中的實時數據。Oryx 提供了一種需要在當下做出決定的項目構建方法,如推薦引擎或實時異常檢測。 2.0版本做了近乎完整的重新設計,其組件在 lambda 體系結構下進行鬆散耦合。可以隨時添加新演算法以及這些演算法的新的抽象 (例如 hyperparameter 選擇器),。

Project:Cloudera Oryx

GitHub:https://github.com/cloudera/oryx

8、GoLearn

GoLearn 是一個由Go語言編寫的機器學習庫, 根據開發者 Stephen Whitworth 的研究, 它以簡潔性和可定製性為目標。簡潔性在於在庫中載入和處理數據的方式, 這點模仿了 SciPy 和 R 。可定製性在於如何在應用程序中輕鬆擴展某些數據結構。Stephen Whitworth 還為 Vowpal Wabbit 庫創建了一個gGo包裝器,它可以在Shogun工具箱中找到。

Project:GoLearn

GitHub:https://github.com/sjwhitworth/golearn

9、Weka

Weka是專門為數據挖掘而設計的一套Java機器學習演算法。它有一個包系統用來擴展功能,被包含在官方和非官方包中。 Weka甚至提供了一本書來解釋這個軟體及其所使用的技術。

雖然 Weka 不是專門針對 Hadoop 用戶的,但最近的版本提供了一組包裝器使其可以與 Hadoop 一起使用。 請注意,Weka尚不支持 Spark,目前只支持 MapReduce。 Clojure 用戶可以通過Clj-ml庫來使用Weka。

Project:http://www.cs.waikato.ac.nz/ml/weka/

10、Deeplearn.js

在web瀏覽器中進行深度學習的另一個項目是deeplearn.js,它來自Google。你可以在任何現代瀏覽器中直接訓練神經網路模型,而無需額外的客戶端軟體。deeplearn.js還可以通過web GLAPI進行GPU加速,因此性能不受限於系統的CPU。該項目的函數模仿了Google 的TensorFlow,使得TensorFlow的用戶可以輕鬆地開始使用。

Project:https://pair-code.github.io/deeplearnjs/

11、ConvNetJS

顧名思義,ConvNetJS是用於神經網路機器學習的JavaScript庫,便於將瀏覽器用作數據工作台。 對於使用Node.js的用戶,還可以使用NPM版本,該庫的設計使用了JavaScript的非同步操作。例如,訓練完成後執行一個回調。它包括了大量演示示例。

Project:http://cs.stanford.edu/people/karpathy/convnetjs/

GitHub:https://github.com/karpathy/convnetjs

----------充實的腦洞----------

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器學習 的精彩文章:

AIOps智能運維=機器學習+自動化運維
星座分析有科學依據嗎?用大數據和機器學習揭開十二星座的真實面目!
借鑒師生互動模式來訓練機器學習模型
機器學習演算法可近似性的量化評估分析
初學者必讀的八個趣味機器學習項目‖教程 數據集

TAG:機器學習 |