翻譯:瘋狂的技術宅
英文標題:11 open source tools to make the most of machine learning
英文鏈接:https://www.infoworld.com/art...
本文首發於微信公衆號:充實的腦洞html
使用這些多樣化、易於實現的庫和框架,挖掘機器學習的預測能力python
垃圾郵件過濾,人臉識別,推薦引擎 —— 當你有一個須要執行預測分析或模式識別的大型數據集時,機器學習是一條途徑。 免費開源軟件的激增使機器學習更容易在單機和大規模集羣上實現,並支持大多數流行的編程語言。這11個開源工具使用的語言包括Python,R,C ++,Java, Scala,Clojure,JavaScript和Go。git
Python由於它的易用性,已經成爲一種用於數學、科學和統計的編程語言,並且幾乎任何程序均可以使用這些庫。Scikit-learn 經過在幾個現有的 python 包( NumPy, SciPy 和 Matplotlib )能夠被普遍用於數學和科學工做。它能夠被用在交互式「工做臺」程序中,也能夠嵌入到其餘軟件中並被重用。該工具包在BSD許可證下提供,所以它是徹底開放和可重用的。github
Project: http://scikit-learn.org/stable/
GitHub: https://github.com/scikit-lea...web
著名的Shogun建立於1999年,儘管它是用C++編寫的,但能夠與Java,Python,C#,Ruby,R,Lua,Octave和Matlab一塊兒使用。最新版本 6.0.0 增長了對Microsoft Windows和Scala語言的本地支持。算法
雖然廣受歡迎,可是 Shogun 仍受到來自另一個基於C++的機器學習庫的競爭:2011年出現的Mlpack。可是Shogun仍然自稱是比其餘競爭者更快更易用的(經過一個更完整的API集)。apache
Project: http://www.shogun-toolbox.org/
GitHub: https://github.com/shogun-too...編程
Accord是一個機器學習和信號處理框架,基於.Net編寫,是之前的項目AForge.net的延伸,Accord包括一組用於處理音頻信號和圖像流(例如視頻)的庫。其視覺處理算法可用於臉部識別,拼接圖像或跟蹤移動物體等任務。segmentfault
Accord還提供更傳統的機器學習功能的庫,包括神經網絡和決策樹系統。瀏覽器
Project: http://accord-framework.net/
GitHub: https://github.com/accord-net...
Apache Mahout長期以來一直被綁定到Hadoop,可是其中的許多算法也能夠脫離 Hadoop 運行。 這對可能最終遷移到 Hadoop 項目中的獨立應用很是有用,這些項目最終可能會被剝離到本身的獨立應用中。最後幾個版本增強了對高性能 Spark 框架的支持,並增長了對用於 GPU 加速的 ViennaCL 庫的支持。
Project: https://mahout.apache.org/
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/
H2O的算法針對業務流程(例如欺詐或趨勢預測)而不是圖像分析。H2O可以以獨立的方式與HDFS、YARN、MapReduce或者直接在Amazon EC2實例進行交互。Hadoop專家可使用Java與H2O交互,該框架還提供了Python、R 和 Scala 的綁定方式,容許你與這些平臺上的全部庫進行交互。
Project: http://0xdata.com/h2o/
GitHub: https://github.com/0xdata/h2o
Oryx,由 Cloudera Hadoop distribution 的創始人提供,經過Spark和Kafka流處理框架來運行機器學習模型中的實時數據。Oryx 提供了一種須要在當下作出決定的項目構建方法,如推薦引擎或實時異常檢測。 2.0版本作了近乎完整的從新設計,其組件在 lambda 體系結構下進行鬆散耦合。能夠隨時添加新算法以及這些算法的新的抽象 (例如 hyperparameter 選擇器),。
Project: Cloudera Oryx
GitHub: https://github.com/cloudera/oryx
GoLearn 是一個由Go語言編寫的機器學習庫, 根據開發者 Stephen Whitworth 的研究, 它以簡潔性和可定製性爲目標。簡潔性在於在庫中加載和處理數據的方式, 這點模仿了 SciPy 和 R 。可定製性在於如何在應用程序中輕鬆擴展某些數據結構。Stephen Whitworth 還爲 Vowpal Wabbit 庫建立了一個gGo包裝器,它能夠在Shogun工具箱中找到。
Project: GoLearn
GitHub: https://github.com/sjwhitwort...
Weka是專門爲數據挖掘而設計的一套Java機器學習算法。它有一個包系統用來擴展功能,被包含在官方和非官方包中。 Weka甚至提供了一本書來解釋這個軟件及其所使用的技術。
雖然 Weka 不是專門針對 Hadoop 用戶的,但最近的版本提供了一組包裝器使其能夠與 Hadoop 一塊兒使用。 請注意,Weka尚不支持 Spark,目前只支持 MapReduce。 Clojure 用戶能夠經過Clj-ml庫來使用Weka。
Project: http://www.cs.waikato.ac.nz/m...
在web瀏覽器中進行深度學習的另外一個項目是deeplearn.js,它來自Google。你能夠在任何現代瀏覽器中直接訓練神經網絡模型,而無需額外的客戶端軟件。deeplearn.js還能夠經過web GLAPI進行GPU加速,所以性能不受限於系統的CPU。該項目的函數模仿了Google 的TensorFlow,使得TensorFlow的用戶能夠輕鬆地開始使用。
Project: https://pair-code.github.io/d...
顧名思義,ConvNetJS是用於神經網絡機器學習的JavaScript庫,便於將瀏覽器用做數據工做臺。 對於使用Node.js的用戶,還可使用NPM版本,該庫的設計使用了JavaScript的異步操做。例如,訓練完成後執行一個回調。它包括了大量演示示例。
Project: http://cs.stanford.edu/people...
GitHub: https://github.com/karpathy/c...
關注微信公衆號:充實的腦洞, 一個技術宅的保留地 | |
---|---|