關於機器學習的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:機器學習 |