史上最全的機器學習資料(上)

摘要: 機器學習牽涉的編程語言十分之廣,包括了MATLAB、Python、Clojure、Ruby等等。爲了讓開發者更加普遍、深刻地瞭解機器學習,雲棲社區組織翻譯了GitHub Awesome Machine Learning 資源,涵蓋24種編程語言的機器學習的框架、庫以及其餘相關資料。javascript

機器學習(Machine Learning, ML)是一門多領域交叉學科,涉及機率論、統計學、逼近論、凸分析、算法複雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行爲,以獲取新的知識或技能,從新組織已有的知識結構使之不斷改善自身的性能。機器學習牽涉的編程語言十分之廣,包括了MATLAB、Julia、R、Perl、Python、Clojure、Ruby等等。
爲了讓開發者更加普遍、深刻地瞭解機器學習,雲棲社區組織翻譯了GitHub Awesome Machine Learning 資源,涵蓋24種編程語言的機器學習的框架、庫以及其餘相關資料。

目錄

Cphp

通用機器學習html

 

  •   Recommender  - 一個C語言庫,利用協同過濾CF進行產品推薦/建議;
  •   Darknet  -是一個用CCUDA編寫的開源神經網絡框架,它速度快,易於安裝,並支持CPUGPU計算。

 

計算機視覺java

 

  •   CCV  -基於C語言、高速緩存的核計算機視覺庫,是一個現代化的計算機視覺庫;
  •   VLFeat  -開放、可便攜的計算機視覺算法庫,內有matlab工具箱。

 

語音識別node

 

  •   HTK  -隱馬爾可夫模型工具包(HTK)是一個便攜式工具包,用於構建和操做隱馬爾可夫模型。

 

C++python

計算機視覺git

 

  •   OpenCV  -OpenCV自帶C ++CPythonJavaMATLAB接口,並支持WindowsLinuxAndroid版和Mac OS等系統;
  •   DLib  -DLibC ++Python接口,用於人臉檢測和訓練通用的目標探測器;
  •   EBLearn  -Eblearn是一種面向對象的C++庫,可以實現各類機器學習模型;
  •   VIGRA  -VIGRA是通用跨平臺的C++計算機視覺和機器學習庫,可以用Python綁定任意維度的體積。

 

通用機器學習github

 

  •   mlpack  -可擴展的C++機器學習庫;
  •   DLib  -ML工具套件,可以很容易嵌入到其餘應用程序中;
  •   encog-cpp
  •   shark
  •   Vowpal Wabbit (VW)  -一個快速的核外(out-of-core )學習系統;
  •   sofia-ml  -快速增量算法套件;
  •   Shogun  -Shogun機器學習工具箱;
  •   Caffe  -基於清潔度、可讀性和速度考慮而開發的深度學習框架。[深度學習]
  •   CXXNET  -另外一個深度學習框架,其核心代碼少於1000行;[深度學習]
  •   XGBoost  -一種並行、優化、通用的梯度推動庫;
  •   CUDA  -利用C++ / CUDA快速實現卷積;[深度學習]
  •   Stan  -一種機率性的編程語言,可以實現Hamiltonian Monte Carlo抽樣的全貝葉斯統計推斷;
  •   BanditLib  -一個簡單、有多重保護的Bandit庫;
  •   Timbl :一個軟件包/ C ++庫,可以實現多種基於內存的學習算法,其中有IB1-IG--k-最近鄰分類的實現、IGTree--IB1-IG的決策樹近似值;經常使用於NLP
  •   Disrtibuted Machine learning Tool Kit (DMTK)  -微軟開發的分佈式機器學習(參數服務器)框架,可以在多臺機器的大型數據集上實現訓練模型,與它捆綁的現有工具包括:LightLDA和分佈式(多傳感)字嵌入;
  •   igraph  -通用圖形庫;
  •   Warp-CTC  -在CPUGPU上快速並行地實現鏈接時域分類(Connectionist Temporal Classification,CTC);
  •   CNTK  -微軟研究院開發的計算網絡工具包(CNTK),它做爲一系列計算步驟,經過有向圖來描述神經網絡,是統一的深度學習工具包;
  •   DeepDetect  -一個機器學習API,服務器用C++11編寫,它使機器學習的狀態易於工做,並容易集成到現有應用程序;
  •   Fido  -一個高度模塊化的C++機器學習庫,用於嵌入式電子產品和機器人中。

 

天然語言處理正則表達式

 

  •   MIT Information Extraction Toolkit  -CC ++Python的工具,用於命名實體識別與關係抽取;
  •   CRF++  -條件隨機域(Conditional Random Fields,CRFs)的開源實現,用於分割/標記序列數據及其餘天然語言處理任務;
  •   CRFsuite  -條件隨機域(CRFs)的實現,用於標記序列數據;
  •   BLLIP Parser  -BLLIP天然語言解析器(也稱爲Charniak-Johnson解析器);
  •   colibri-core  -是C++庫、命令行工具,和Python綁定用於提取與使用基本的語言結構,例如用快速和高效存儲的方式實現n-grams和skipgrams模型;
  •   ucto  -是一種工具和C++庫,基於支持各類語言的編譯器,內含統一字符標準及規則表達式;支持FoLiA格式;
  •   libfolia  -支持FoLiA格式C++庫;
  •   frog  -爲Dutch開發的基於內存的NLP套件:POS標籤、歸類分析、依存句法分析、NER、淺層句法分析、形態分析;
  •   MeTA  -MeTA : ModErn 語篇分析(ModErn Text Analysis,是一個C++數據科學工具包,便於挖掘大文本數據。

 

語音識別算法

 

  •   Kaldi  -Kaldi是用於語音識別的工具包,用C++編寫,由Apache許可證V2.0協議受權,專門給語音識別的研究人員使用。

 

序列分析

 

  •   ToPS  -這是一種面向對象的框架,便於在用戶定義的字母序列中整合機率模型。

 

手勢檢測

 

  •   grt  -手勢識別工具包(GRT)是一個跨平臺、開源的C++機器學習庫,用於實時的手勢識別。

 

Common Lisp

通用機器學習

 

  •   mgl  -神經網絡(玻耳茲曼機,前饋和循環網絡)以及高斯過程;
  •   mgl-gpr  -演化算法;
  •   cl-libsvm  -LIBSVM支持向量機庫的包裝。

 

Clojure

天然語言處理

 

  •   Clojure-openNLP - Clojure中天然語言處理的工具包(openNLP);
  •   Infections-clj - ClojureClojure中相似於Railsinflection庫。

 

通用機器學習

 

  •   Touchstone - Clojure A/B 測試庫;
  •   Clojush - Clojure中的Push程序語言和PushGP遺傳編程系統
  •   Infer - Clojure中分析和機器學習的工具;
  •   Clj-ML - Clojure中基於Weka及其相關環境的深度學習庫;
  •   Encog - 在Clojure中封裝成Encog (v3) (專門研究神經網絡的機器學習框架);
  •   Fungp -  Clojure中的遺傳編程實例庫;
  •   Statistiker - Clojure中基礎機器學習算法;
  •   clortex -採用Numentas Cortical 學習算法的通用機器學習庫;
  •   comportex - 採用Numentas Cortical 學習算法的功能組合的機器學習庫。

 

數據分析/數據可視化

 

  •   Incanter - Incanter是基於 Clojure,相似R的統計計算與製圖平臺
  •   PigPen -  Clojure中的Map-Reduce
  •   Envision - 基於Statistiker和D3Clojure 數據可視化庫。

 

Erlang

通用機器學習

 

 

  •   Disco-  Erlang中的Map Reduce模型。

 

Go

天然語言處理

 

 

  •   go-porterstemmer - 一個用於實現Porter詞幹提取算法的原生Go語言淨室;
  •   paicehusk - Go語言中用於實現Paice/Husk詞幹提取算法;
  •   snowball - Go語言中的Snowball 詞幹提取器;
  •   go-ngram -內存N-gram索引壓縮 。

 

通用機器學習

 

 

  •   Go Learn - Go語言中的機器學習庫;
  •   go-pr - Go語言中的模式識別包;
  •   go-ml - 線性/邏輯迴歸、神經網絡、協同過濾和多元高斯分佈;
  •   bayesian - Go語言中樸素貝葉斯分類庫;
  •   go-galib - Go語言版的遺傳算法庫;
  •   Cloudforest - GO語言中的決策樹集合;
  •   gobrain - GO語言版的神經網絡;
  •   GoNN - GoNN 是用Go語言實現的神經網絡,它包括BPNNRBFPCN ;
  •   MXNet - 輕量級、便攜式、靈活的分佈式/深度學習系統,可對動態的、突變數據流調度部署,同時也支持PythonRJuliaGoJavascript 等編程語言。

 

 

數據分析/數據可視化

 

  •   go-graph - Go語言圖形庫;
  •   SVGo - Go語言的SVG生成庫;
  •   RF - Go語言的隨機森林庫;

 

Haskell

通用機器學習

 

 

  •   haskell-ml - Haskell 語言實現的各類深度學習算法 ;
  •   HLearn - 根據代數結構解釋其深度模型的庫;
  •   hnn - Haskell語言的神經網絡庫;
  •   hopfield-networks - Haskell中用於無監督學習的Hopfield網絡;
  •   caffegraph - 一種用於深度神經網絡的領域特定語言(DSL);
  •   LambdaNet - Haskell中的可配置的神經網絡。

 

Java

天然語言處理

 

 

  •   Cortical.io - 像人腦同樣快速、精確處理複雜的NLP(天然語言處理)操做(如消歧、分類、流文本過濾等操做)的Retina API;
  •   CoreNLP - 斯坦福大學的CoreNLP提供的一系列的天然語言處理工具,該工具能夠根據輸入原始英語文本,給出單詞的基本形式;
  •   Stanford Parser - 一種天然語言分析器,能夠分析語句的語法結構;
  •   Stanford POS Tagger -一個詞性分類器  (POS Tagger);
  •   Stanford Name Entity Recognizer - Stanford NER是一個Java實現的名稱識別器;
  •   Stanford Word Segmenter - 分詞器,不少NLP工做中都要用到的標準預處理步驟;
  •   Tregex, Tsurgeon and Semgrex - Tregex基於樹關係以及節點匹配的正則表達式,用於在樹狀數據結構中進行模式匹配(名字是「tree regular expressions」的縮寫) ;
  •   Stanford Phrasal: 一個基於短語的翻譯系統
  •   Stanford English Tokenizer - Stanford Phrasal 用Java寫成的最新的基於統計短語的機器翻譯系統;
  •   Stanford Tokens Regex - 一個分解器,能夠將文本大體分紅一系列對應於「詞」的符號;
  •   Stanford Temporal Tagger - SUTime是一個用於識別並標準化時間表達式的庫;
  •   Stanford SPIED -在種子集上使用模式,以迭代方式從無標籤文本中進行學習實體;
  •   Stanford Topic Modeling Toolbox - 爲社會科學家及其餘但願分析數據集的人員提供的主題建模工具;
  •   Twitter Text Java - Java實現的推特文本處理庫;
  •   MALLET - 基於Java的統計天然語言處理、文檔分類、聚類、主題建模、信息提取以及其餘機器學習的文本應用包;
  •   OpenNLP - 基於機器學習的天然語言文本處理工具包;
  •   LingPipe - 一個使用計算機語言學文本處理的工具包;
  •   ClearTK - 在JavaClearTK爲開發統計語言處理組件提供了一個框架,該框架是基於Apache UIMA;
  •   Apache cTAKES - Apache cTAKES是一個開源天然語言處理系統,用於從臨牀電子病歷的自由文本中提取信息;
  •   ClearNLP - ClearNLP工程爲天然語言處理提供了軟件和資源提供了。該項目最先在計算機癒合和教育研究中心啓動,目前由Emory 大學的語言和信息研究中心繼續開發。該項目遵循Apache 2 license。

 

通用機器學習

 

 

  •   aerosolve - 是由Airbnb設計的訂價建議系統的機器學習庫;
  •   Datumbox -應對機器學習和統計應用快速發展的機器學習框架;
  •   ELKI - 用於數據挖掘的Java工具包(無監督:聚類、異常檢測等等);
  •   Encog - 一種先進的神經網絡和機器學習框架。 Encog包含用於建立各種網絡的類,同時也支持爲神經網絡規範和處理數據的類。它的訓練採用多線程彈性傳播。它也能使用GPU加快處理時間。提供了圖形化界面來幫助建模和訓練神經網絡。
  •   EvA2 - 包含遺傳算法、差分進化、協方差自適應進化策略等等的進化算法框架;
  •   FlinkML in Apache Flink - Flink中的分佈式機器學習庫;
  •   H2O - 深度學習引擎,支持在HadoopSpark 或者經過RPythonScala 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 語音識別庫,用於純語音識別開源工具包。

 

數據分析/數據可視化

 

 

  •   Flink - Apache Flink是一個面向分佈式數據流處理和批量數據處理的開源計算平臺
  •   Hadoop - 大數據分析平臺;
  •   Spark - Spark是一個快速通用的大規模數據處理引擎;
  •   Storm - Storm是一個分佈式實時計算系統;
  •   Impala - 爲Hadoop實現實時查詢
  •   DataMelt - 用於數字計算、統計、符號計算、數據分析和數據可視化的數學軟件;
  •   Dr. Michael Thomas Flanagan's Java Scientific Library

 

深度學習

 

 

  •   Deeplearning4j - 採用並行GPU的商用可擴展深度學習庫。

 

數 Javascript


天然語言處理

 

  •   Twitter-text - Twitter文本處理庫中使用JavaScript的實現;
  •   NLP.js – 使用JavaScriptCoffeeScriptNLP實用工具;
  •   natural – 用於節點的通用天然語言工具;
  •   Knwl.js – JS中的天然語言處理器;
  •   Retext -用於分析和處理天然語言的可擴展系統;
  •   TextProcessing -情感分析,詞幹和詞形還原,部分詞性標註和組塊,短語提取和命名實體識別;
  •   NLP Compromise - 瀏覽器中的天然語言處理。

 

數據分析/數據可視化

 

  •   D3.js
  •   High Charts
  •   NVD3.js
  •   dc.js
  •   chartjs
  •   dimple
  •   amCharts
  •   D3xter –直接創建在D3上的繪圖;
  •   statkit – JavaScript的統計工具;
  •   datakit - JavaScript的輕量級數據分析框架;
  •   science.js - JavaScript中的科學統計計算;
  •   Z3d – 在Three.js上輕鬆地繪製交互式3D圖;
  •   Sigma.js - JavaScript庫,專門用於圖形繪製;
  •   C3.js – 基於D3.js的定製庫,可以輕鬆繪製圖表;
  •   ZingChart - Vanilla JS編寫的庫,用於大數據可視化;
  •   cheminfo – 數據可視化和分析的平臺,使用可視化項目。

 

通用機器學習

 

  •   Convnet.js - ConvNetJS是一個JavaScript庫,用於訓練深度學習模型[深度學習]
  •   Clusterfck - Node.js和瀏覽器,用Javascript實現的凝聚層次聚類;
  •   Clustering.js – JavascriptNode.js和瀏覽器實現的聚類算法;
  •   Decision Trees -使用ID3算法實現NodeJS決策樹;
  •   figue - K-均值、模糊C均值和凝聚聚類;
  •   Node-fann -Node.js綁定的快速人工神經網絡庫(Fast Artificial Neural Network Library,FANN);
  •   Kmeans.js - K-均值算法用JavaScript的簡單實現,用於Node.js和瀏覽器;
  •   LDA.js - Node.jsLDA主題建模;
  •   Learning.js –用Javascript實現邏輯迴歸c4.5決策樹;
  •   Machine Learning - Node.js的機器學習庫;
  •   Node-SVM - Node.js的支持向量機;
  •   Brain - JavaScript中的神經網絡[已棄用]
  •   Bayesian-Bandit - Node和瀏覽器的貝葉斯實現;
  •   Synaptic – 用於Node.js和瀏覽器的無架構神經網絡庫;
  •   kNear - JavaScript實現的k個最近鄰算法,用於監督學習;
  •   NeuralN - Node.jsC++神經網絡庫,其優勢是有大量的數據集和多線程訓練;
  •   kalman - Javascript的卡爾曼濾波器;
  •   shaman - Node.js庫,同時支持簡單和多元的線性迴歸;
  •   ml.js –用於Node.js和瀏覽器的機器學習和數值分析工具;
  •   Pavlov.js -利用馬爾可夫決策過程強化學習;
  •   MXNet - 輕量級、便攜式、靈活的分佈式/深度學習系統,可對動態的、突變數據流調度部署,同時也支持Python、R、Julia、Go、Javascript 等編程語言。

 

 

 

其它

 

  •   sylvester – 用於JavaScript的向量和矩陣數學;
  •   simple-statistics - 描述,迴歸和推斷統計的JavaScript實現;用文字實現的JavaScript,沒有依賴性,能在全部現代瀏覽器(包括IE)以及在node.js中工做;
  •   regression-js – JavaScript庫,包含小二乘法擬合方法的集合,用於尋找數據集的趨勢;
  •   Lyric -線性迴歸庫;
  •   GreatCircle – 計算大圓距的庫。

 

Julia

通用機器學習

 

  •   MachineLearning - Julia機器學習庫;
  •   MLBase -一組支持機器學習算法的發展的函數;
  •   PGM - 一個機率圖模型的Julia框架;
  •   DA - 正則判別分析的Julia組件;
  •   Regression - 迴歸分析算法(例如線性迴歸和邏輯迴歸);
  •   Local Regression -局部迴歸,超級流暢!
  •   Naive Bayes - Julia樸素貝葉斯方法的簡單實現;
  •   Mixed Models – 用於裝配(統計)混合效應模型的Julia組件;
  •   Simple MCMC – Julia實現基本的MCMC採樣;
  •   Distance - Julia距離評估模塊;
  •   Decision Tree -決策樹分類和迴歸;
  •   Neural - Julia神經網絡;
  •   MCMC – Julia 的MCMC工具;
  •   Mamba – Julia中馬爾可夫鏈蒙特卡羅(MCMC)的貝葉斯分析;
  •   GLM – Julia的廣義線性模型。
  •   Online Learning
  •   GLMNet – GMLNetJulia包裝版,適合套索/彈性網模型;
  •   Clustering -集羣數據的基本功能:K-均值,DP-均值等;
  •   SVM – Julia適用的SVM;
  •   Kernal Density – Julia的核密度估計量;
  •   Dimensionality Reduction -降維方法;
  •   NMF - 非負矩陣分解的Julia包;
  •   ANN - Julia人工神經網絡;
  •   Mocha – 受Caffe啓發,Julia的深度學習框架;
  •   XGBoost – Julia中的eXtreme Gradient Boosting 包;
  •   ManifoldLearning – 用於流形學習和非線性降維的Julia組件;
  •   MXNet - 輕量級、便攜式、靈活的分佈式/深度學習系統,可對動態的、突變數據流調度部署,同時也支持Python、R、Julia、Go、Javascript 等編程語言。
  •   Merlin - Julia靈活的深度學習框架。

 

天然語言處理

 

 

數據分析/數據可視化

 

  •   Graph Layout – 純Julia實現的圖佈局算法;
  •   Data Frames Meta - DataFrames的元編程工具;
  •   Julia Data - 處理表格數據的Julia庫;
  •   Data Read - 從StataSASSPSS讀取文件;
  •   Hypothesis Tests – Julia的假設檢驗;
  •   Gadfly – Julia 靈活的統計製圖法;
  •   Stats – Julia的統計圖檢驗;
  •   RDataSets - 用於裝載許多R中可用數據集的Julia包;
  •   DataFrames – 處理列表數據的Julia庫;
  •   Distributions - 機率分佈和相關函數的Julia包;
  •   Data Arrays - 容許缺失值的數據結構;
  •   Time Series – Julia的時間序列工具包;
  •   Sampling - Julia的基本採樣算法。

 

其餘項/展現

 

  •   DSP -數字信號處理(濾波,週期圖,頻譜圖,窗函數);
  •   JuliaCon Presentations – JuliaCon的演示文稿;
  •   SignalProcessing – Julia寫的信號處理工具;
  •   Images – Julia的圖像庫。
以上爲「史上最全機器學習資料(上)」的所有內容,敬請期待下一節。

 


譯者:劉崇鑫   校對:王殿進
相關文章
相關標籤/搜索