史上最全的机器学习资料(上)
摘要:?機器學習牽涉的編程語言十分之廣,包括了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
- 通用機器學習
- 計算機視覺
- C++
- 計算機視覺
- 通用機器學習
- 自然語言處理
- 序列分析
- 手勢識別
- Common Lisp
- 通用機器學習?
- Clojure
- 自然語言處理
- 通用機器學習
- 數據分析 /數據可視化
- Erlang
- 通用機器學習
- Go
- 自然語言處理
- 通用機器學習?
- 數據分析 /數據可視化
- Haskell
- 通用機器學習
- Java
- 自然語言處理?
- 通用機器學習
- 數據分析 /數據可視化
- 深度學習
- Javascript
- 自然語言處理
- 數據分析 /數據可視化?
- 通用機器學習?
- 其他
- Julia
- 通用機器學習
- 自然語言處理
- 數據分析/數據可視化
- 其他項 /展示
- Lua
- 通用機器學習
- 示例和腳本
- Matlab
- 計算機視覺
- 自然語言處理
- 通用機器學?
- 數據分析 / 數據可視化
- .NET
- 計算機視覺
- 自然語言處理?
- 通用機器學習
- 數據分析 /數據可視化?
- Objective C
- 通用機器學習
- OCaml
- 通用機器學習
- PHP
- 自然語言處理?
- 通用機器學習?
- Python
- ?計算機視覺
- 自然語言處理
- 通用機器學習
- 數據分析 /數據可視化?
- 雜項腳本/ iPython筆記 /源碼庫?
- Kaggle競賽源碼?
- Ruby
- 自然語言處理
- 通用機器學習?
- 數據分析 /數據處理?
- 雜項
- Rust
- 通用機器學習
- R
- 通用機器學習
- 數據分析 /數據可視化?
- SAS
- 通用機器學習?
- 數據分析 /數據可視化?
- 高性能機器學習(MPP)?
- 自然語言處理
- 示例和腳本
- Scala
- 自然語言處理
- 數據分析 /數據可視化?
- 通用機器學習?
- Swift
- 通用機器學習?
- Credits
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?– 瀏覽器中的自然語言處理。
數據分析/數據可視化
- 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?–?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靈活的深度學習框架。
自然語言處理
- Topic Models?–?Julia下的主題模型;
- Text Analysis?–?Julia下的文本分析包。
數據分析/數據可視化
- Graph Layout?–?純Julia實現的圖布局算法;
- Data Frames Meta?–?DataFrames的元編程工具;
- Julia Data?–?處理表格數據的Julia庫;
- Data Read?–?從Stata、SAS、SPSS讀取文件;
- 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的圖像庫。
總結
以上是生活随笔為你收集整理的史上最全的机器学习资料(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python作为机器学习语言的老大,跟在
- 下一篇: 通俗说一下python和人工智能有什么关