機器學習(Machine Learning, ML)是一門多領域交叉學科,涉及機率論、統計學、逼近論、凸分析、算法複雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行爲,以獲取新的知識或技能,從新組織已有的知識結構使之不斷改善自身的性能。機器學習牽涉的編程語言十分之廣,包括了MATLAB、Julia、R、Perl、Python、Clojure、Ruby等等。
爲了讓開發者更加普遍、深刻地瞭解機器學習,雲棲社區組織翻譯了GitHub Awesome Machine Learning 資源,涵蓋24種編程語言的機器學習的框架、庫以及其餘相關資料。
目錄
Cphp
通用機器學習html
- Recommender - 一個C語言庫,利用協同過濾(CF)進行產品推薦/建議;
- Darknet -是一個用C和CUDA編寫的開源神經網絡框架,它速度快,易於安裝,並支持CPU和GPU計算。
計算機視覺java
- CCV -基於C語言、高速緩存的核計算機視覺庫,是一個現代化的計算機視覺庫;
- VLFeat -開放、可便攜的計算機視覺算法庫,內有matlab工具箱。
語音識別node
- HTK -隱馬爾可夫模型工具包(HTK)是一個便攜式工具包,用於構建和操做隱馬爾可夫模型。
C++python
計算機視覺git
- OpenCV -OpenCV自帶C ++、C、Python、Java和MATLAB接口,並支持Windows、Linux、Android版和Mac OS等系統;
- DLib -DLib有C ++和Python接口,用於人臉檢測和訓練通用的目標探測器;
- EBLearn -Eblearn是一種面向對象的C++庫,可以實現各類機器學習模型;
- VIGRA -VIGRA是通用跨平臺的C++計算機視覺和機器學習庫,可以用Python綁定任意維度的體積。
通用機器學習github
天然語言處理正則表達式
語音識別算法
- Kaldi -Kaldi是用於語音識別的工具包,用C++編寫,由Apache許可證V2.0協議受權,專門給語音識別的研究人員使用。
序列分析
- ToPS -這是一種面向對象的框架,便於在用戶定義的字母序列中整合機率模型。
手勢檢測
- grt -手勢識別工具包(GRT)是一個跨平臺、開源的C++機器學習庫,用於實時的手勢識別。
Common Lisp
通用機器學習
Clojure
天然語言處理
通用機器學習
- Touchstone - Clojure A/B 測試庫;
- Clojush - Clojure中的Push程序語言和PushGP遺傳編程系統;
- Infer - Clojure中分析和機器學習的工具;
- Clj-ML - Clojure中基於Weka及其相關環境的深度學習庫;
- Encog - 在Clojure中封裝成Encog (v3) (專門研究神經網絡的機器學習框架);
- Fungp - Clojure中的遺傳編程實例庫;
- Statistiker - Clojure中基礎機器學習算法;
- clortex -採用Numenta’s Cortical 學習算法的通用機器學習庫;
- comportex - 採用Numenta’s Cortical 學習算法的功能組合的機器學習庫。
數據分析/數據可視化
- Incanter - Incanter是基於 Clojure,相似R的統計計算與製圖平臺;
- PigPen - Clojure中的Map-Reduce;
- Envision - 基於Statistiker和D3Clojure 數據可視化庫。
Erlang
通用機器學習
- Disco- Erlang中的Map Reduce模型。
Go
天然語言處理
通用機器學習
- Go Learn - Go語言中的機器學習庫;
- go-pr - Go語言中的模式識別包;
- go-ml - 線性/邏輯迴歸、神經網絡、協同過濾和多元高斯分佈;
- bayesian - Go語言中樸素貝葉斯分類庫;
- go-galib - Go語言版的遺傳算法庫;
- Cloudforest - GO語言中的決策樹集合;
- gobrain - GO語言版的神經網絡;
- GoNN - GoNN 是用Go語言實現的神經網絡,它包括BPNN、RBF、PCN ;
- MXNet - 輕量級、便攜式、靈活的分佈式/深度學習系統,可對動態的、突變數據流調度部署,同時也支持Python、R、Julia、Go、Javascript 等編程語言。
數據分析/數據可視化
Haskell
通用機器學習
Java
天然語言處理
通用機器學習
- aerosolve - 是由Airbnb設計的訂價建議系統的機器學習庫;
- Datumbox -應對機器學習和統計應用快速發展的機器學習框架;
- ELKI - 用於數據挖掘的Java工具包(無監督:聚類、異常檢測等等);
- Encog - 一種先進的神經網絡和機器學習框架。 Encog包含用於建立各種網絡的類,同時也支持爲神經網絡規範和處理數據的類。它的訓練採用多線程彈性傳播。它也能使用GPU加快處理時間。提供了圖形化界面來幫助建模和訓練神經網絡。
- EvA2 - 包含遺傳算法、差分進化、協方差自適應進化策略等等的進化算法框架;
- FlinkML in Apache Flink - Flink中的分佈式機器學習庫;
- H2O - 深度學習引擎,支持在Hadoop、Spark 或者經過R、Python、Scala 、REST/JSONML 的APIs連到的筆記本上進行分佈式學習;
- htm.java - 採用Numenta Cortical 學習算法的通用機器學習庫 ;
- java-deeplearning - Java、Clojure、Scala的分佈式深度學習平臺;
- JAVA-ML - 包含全部Java算法的通用接口的通用深度學習庫;
- JSAT - 用於分類、迴歸、聚類的機器學習算法集合;
- Mahout - 分佈式的機器學習庫;
- Meka - MEKA提供了一個面向多標籤學習和評價方法的開源實現(擴展成Weka);
- MLlib in Apache Spark - Spark中的分佈式機器學習程序庫;
- Neuroph - Neuroph 是輕量級的Java神經網絡框架;
- ORYX - 採用Apache Spark和Apache Kafka的Lambda 結構框架,專門用於實時大規模機器學習;
- Samoa - SAMOA 是一個包含用於分佈式機器學習數據流的框架,同時爲數據流流入不一樣的流處理平臺提供了接口;
- RankLib - RankLib是一個排序學習算法庫;
- rapaio - Java中用於統計、數據挖掘和機器學習的工具箱;
- RapidMiner - RapidMiner integration into Java code
- Stanford Classifier - 斯坦福大學分類器是一種機器學習工具,它能夠將數據項歸置不一樣的類別中;
- SmileMiner - 統計機器智能與學習引擎;
- SystemML - 靈活、可擴展的機器學習語言;
- WalnutiQ - 人腦部分面向對象模型;
- Weka - Weka是數據挖掘方面的機器學習算法集 。
語音識別
- CMU Sphinx - CMU Sphinx 是基於Java 語音識別庫,用於純語音識別開源工具包。
數據分析/數據可視化
深度學習
數 Javascript
天然語言處理
數據分析/數據可視化
通用機器學習
其它
Julia
通用機器學習
天然語言處理
數據分析/數據可視化
其餘項/展現
以上爲「史上最全機器學習資料(上)」的所有內容,敬請期待下一節。
譯者:劉崇鑫 校對:王殿進