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


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

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

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

目錄

C

通用機器學習

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

計算機視覺

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

語音識別

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

C++

計算機視覺

  • 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靈活的深度學習框架。

自然語言處理

數據分析/數據可視化

其他項/展示

來源:雲棲社區
譯者:劉崇鑫   校對:王殿進


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM