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

轉自:http://www.afenxi.com/post/18593javascript

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

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

目錄

Chtml

通用機器學習java

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

計算機視覺node

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

語音識別python

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

C++git

計算機視覺github

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

通用機器學習正則表達式

  • 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  -在CPU和GPU上快速並行地實現鏈接時域分類(Connectionist Temporal Classification,CTC);
  • CNTK  -微軟研究院開發的計算網絡工具包(CNTK),它做爲一系列計算步驟,經過有向圖來描述神經網絡,是統一的深度學習工具包;
  • DeepDetect  -一個機器學習API,服務器用C++11編寫,它使機器學習的狀態易於工做,並容易集成到現有應用程序;
  • Fido  -一個高度模塊化的C++機器學習庫,用於嵌入式電子產品和機器人中。

天然語言處理算法

  • MIT Information Extraction Toolkit -C,C ++和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 – Clojure和Clojure中相似於Rails的inflection庫。

通用機器學習

  • 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-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語言實現的神經網絡,它包括BPNN、RBF、PCN ;
  • MXNet – 輕量級、便攜式、靈活的分佈式/深度學習系統,可對動態的、突變數據流調度部署,同時也支持Python、R、Julia、Go、Javascript 等編程語言。

數據分析/數據可視化

  • 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 – 在Java中ClearTK爲開發統計語言處理組件提供了一個框架,該框架是基於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 – 深度學習引擎,支持在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 語音識別庫,用於純語音識別開源工具包。

數據分析/數據可視化

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

數據分析/數據可視化

通用機器學習

  • Convnet.js – ConvNetJS是一個JavaScript庫,用於訓練深度學習模型[深度學習];
  • Clusterfck – 爲Node.js和瀏覽器,用Javascript實現的凝聚層次聚類;
  • Clustering.js – Javascript爲Node.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.js的LDA主題建模;
  • 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.js的C++神經網絡庫,其優勢是有大量的數據集和多線程訓練;
  • 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 – GMLNet的Julia包裝版,適合套索/彈性網模型;
  • 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靈活的深度學習框架。

天然語言處理

數據分析/數據可視化

其餘項/展現

來源:雲棲社區
譯者:劉崇鑫   校對:王殿進
相關文章
相關標籤/搜索