機器學習資源大全中文版
我想很多程序員應該記得 GitHub 上有一個 Awesome - XXX 系列的資源整理。awesome-machine-learning 就是 josephmisiti 發起維護的機器學習資源列表,內容包括了機器學習領域的框架、庫以及軟件(按編程語言排序)。
Awesome 系列雖然挺全,但基本只對收錄的資源做了極爲簡要的介紹,如果有更詳細的中文介紹,對相應開發者的幫助會更大。這也是我們發起這個開源項目的初衷。
我們要做什麼?
- 基於 awesome-machine-learning 資源列表,我們將對各個資源項進行編譯整理。
- 整理後的內容,將收錄在伯樂在線資源頻道。可參考已整理的內容:
如何參與本項目?
從下面的目錄來看,本項目的工作量小不了,所以非常期待能有更多程序員一起來參與。
不過加入前,有幾個小要求:
- 英文還不錯,能讀懂英文並用自己的話複述;
- 有 機器學習 相關的開發經驗;
如有興趣,請加 QQ:50872495。加 Q 時請註明「機器學習大全」
本項目的參與者
注:名單不分排名,不定期補充更新
獎勵計劃
雖然獎勵可能並不是你加入的主要原因,但還是有必要提一下:
- 整理超過 20 個資源後,可在伯樂在線上開通打賞;
- 每整理 20 個資源,有機會獲得技術書籍或各種有意思的創意、極客產品;
- 獎勵詳情
C++
計算機視覺
- CCV:基於C語言/提供緩存/核心的機器視覺庫,新穎的機器視覺庫。官網
- OpenCV:它提供C++、C、Python、Java 以及 MATLAB接口。並支持Windows、Linux、Android 和 Mac OS操作系統。官網
通用機器學習
Clojure
通用機器學習
- Clojure Toolbox:Clojure語言庫與工具的分類目錄。官網
Go
自然語言處理
- go-porterstemmer:一個Porter詞幹提取算法的原生Go語言淨室實現。官網
- paicehusk:Paice/Husk詞幹提取算法的Go語言實現。官網
- snowball:Go語言版的Snowball詞幹提取器。官網
通用機器學習
數據分析/數據可視化
Java
自然語言處理
- CoreNLP:斯坦福大學的CoreNLP提供一系列的自然語言處理工具,輸入原始英語文本,可以給出單詞的基本形式(下面Stanford開頭的幾個工具都包含其中)。官網
- Stanford Parser:一個自然語言解析器。官網
- Stanford POS Tagger:一個詞性分類器。官網
- Stanford Name Entity Recognizer:Java實現的名稱識別器。官網
- Stanford Word Segmenter:分詞器,很多NLP工作中都要用到的標準預處理步驟。官網。
- Tregex、Tsurgeon與Semgrex:用來在樹狀數據結構中進行模式匹配,基於樹關係以及節點匹配的正則表達式(名字是“tree regular expressions"的縮寫)官網
- Stanford Phrasal:最新的基於統計短語的機器翻譯系統,java編寫。官網
- Stanford Tokens Regex:用以定義文本模式的框架。官網
- Stanford Temporal Tagger:SUTime是一個識別並標準化時間表達式的庫。官網
- Stanford SPIED:在種子集上使用模式,以迭代方式從無標籤文本中學習字符實體。官網。
- Stanford Topic Modeling Toolbox:爲社會科學家及其他希望分析數據集的人員提供的主題建模工具。官網
- Twitter Text Java:Java實現的推特文本處理庫。官網
- MALLET:基於Java的統計自然語言處理、文檔分類、聚類、主題建模、信息提取以及其他機器學習文本應用包。官網
- OpenNLP:處理自然語言文本的機器學習工具包。官網
- LingPipe:使用計算機語言學處理文本的工具包。官網
通用機器學習
- MLlib in Apache Spark:Spark中的分佈式機器學習程序庫。官網
- Mahout:分佈式的機器學習庫。官網
- Stanford Classifier:斯坦福大學的分類器。官網
- Weka:Weka是數據挖掘方面的機器學習算法集。官網
- ORYX:提供一個簡單的大規模實時機器學習/預測分析基礎架構。官網
數據分析/數據可視化
Javascript
自然語言處理
- Twitter-text-js:JavaScript實現的推特文本處理庫。官網
- NLP.js:javascript及coffeescript編寫的NLP工具。官網
- natural:Node下的通用NLP工具。官網
- Knwl.js:JS編寫的自然語言處理器。官網
數據分析/數據可視化
通用機器學習
- Convnet.js:訓練深度學習模型的JavaScript庫。官網
- Clustering.js:用JavaScript實現的聚類算法,供Node.js及瀏覽器使用。官網
- Decision Trees:Node.js實現的決策樹,使用ID3算法。官網
- Node-fann:Node.js下的快速人工神經網絡庫。官網
- Kmeans.js:k-means算法的簡單Javascript實現,供Node.js及瀏覽器使用。官網
- LDA.js:供Node.js用的LDA主題建模工具。官網
- Learning.js:邏輯迴歸/c4.5決策樹的JavaScript實現。官網
- Machine Learning:Node.js的機器學習庫。官網
- Node-SVM:Node.js的支持向量機。官網
- Brain:JavaScript實現的神經網絡。官網
- Bayesian-Bandit:貝葉斯強盜算法的實現,供Node.js及瀏覽器使用。官網
Julia
通用機器學習
- 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工具。官網
- GLM:Julia寫的廣義線性模型包。官網
- Online Learning:官網
- GLMNet:GMLNet的Julia包裝版,適合套索/彈性網模型。官網
- Clustering:k-means, dp-means等數據聚類的基本函數。官網
- SVM:Julia下的支持向量機。官網
- Kernal Density:Julia下的核密度估計器。官網
- Dimensionality Reduction:降維算法。官網
- NMF:Julia下的非負矩陣分解包。官網
- ANN:Julia實現的神經網絡。官網
自然語言處理
數據分析/數據可視化
- Graph Layout:純Julia實現的圖佈局算法。官網
- Data Frames Meta:DataFrames的元編程工具。官網
- Julia Data:處理表格數據的Julia庫。官網
- Data Read:從Stata、SAS、SPSS讀取文件。官網
- Hypothesis Tests:Julia中的假設檢驗包。官網
- Gladfly:Julia編寫的靈巧的統計繪圖系統。官網
- Stats:Julia編寫的統計測試函數包。官網
- RDataSets:讀取R語言中衆多可用的數據集的Julia函數包。官網
- DataFrames:處理表格數據的Julia庫。官網
- Distributions:概率分佈及相關函數的Julia包。官網
- Data Arrays:元素值可以爲空的數據結構。官網
- Time Series:Julia的時間序列數據工具包。官網
- Sampling:Julia的基本採樣算法包。官網
雜項/演示文稿
- DSP:數字信號處理。官網
- JuliaCon Presentations:Julia大會上的演示文稿。官網
- SignalProcessing:Julia的信號處理工具。官網
- Images:Julia的圖片庫。官網
Lua
通用機器學習
- Torch7。
- cephes:—Cephes數學函數庫,包裝成Torch可用形式提供幷包裝了超過180個特殊的數學函數,由Stephen L. Moshier開發,是SciPy的核心,應用於很多場合。官網
- graph:供Torch使用的圖形包。官網
- randomkit:從Numpy提取的隨機數生成包,包裝成Torch可用形式。官網
- signal:Torch-7可用的信號處理工具包,可進行FFT, DCT, Hilbert, cepstrums, stft等變換。官網
- nn:Torch可用的神經網絡包。官網
- nngraph:爲nn庫提供圖形計算能力。官網
- nnx:一個不穩定實驗性的包,擴展Torch內置的nn庫。官網
- optim:Torch可用的優化算法庫,包括 SGD, Adagrad, 共軛梯度算法, LBFGS, RProp等算法。官網
- unsup:Torch下的非監督學習包提供的模塊與nn(LinearPsd、ConvPsd、AutoEncoder、...)及獨立算法(k-means、PCA)等兼容。官網
- manifold:操作流形的包。官網
- svm:Torch的支持向量機庫。官網
- lbfgs:將liblbfgs包裝爲FFI接口。官網
- vowpalwabbit:老版的vowpalwabbit對torch的接口。官網
- OpenGM:OpenGM是C++編寫的圖形建模及推斷庫,該binding可以用Lua以簡單的方式描述圖形,然後用OpenGM優化。官網。
- sphagetti:MichaelMathieu爲torch7編寫的稀疏線性模塊。官網
- LuaSHKit:將局部敏感哈希庫SHKit包裝成lua可用形式。官網
- kernel smoothing:KNN、核權平均以及局部線性迴歸平滑器。官網
- cutorch:torch的CUDA後端實現。官網
- cunn:torch的CUDA神經網絡實現。官網
- imgraph:torch的圖像/圖形庫,提供從圖像創建圖形、分割、建立樹、又轉化回圖像的例程。官網
- videograph:torch的視頻/圖形庫,提供從視頻創建圖形、分割、建立樹、又轉化回視頻的例程。官網
- saliency:積分圖像的代碼和工具,用來從快速積分直方圖中尋找興趣點。官網
- stitch:使用hugin拼合圖像並將其生成視頻序列。官網
- sfm:運動場景束調整/結構包。官網
- fex:torch的特徵提取包,提供SIFT和dSIFT模塊。官網
- OverFeat:當前最高水準的通用密度特徵提取器。官網
- Numeric Lua:官網。
- Lunatic Python:官網。
- SciLua:官網。
- Lua - Numerical Algorithms:官網。
- Lunum:官網。
演示及腳本
- Core torch7 demos repository:核心torch7演示程序庫。官網
- 線性迴歸、邏輯迴歸
- 人臉檢測(訓練和檢測是獨立的演示)
- 基於mst的斷詞器
- train-a-digit-classifier
- train-autoencoder
- optical flow demo
- train-on-housenumbers
- train-on-cifar
- tracking with deep nets
- kinect demo
- 濾波可視化
- saliency-networks
- Training a Convnet for the Galaxy-Zoo Kaggle challenge(CUDA demo):官網
- Music Tagging:torch7下的音樂標籤腳本。官網
- torch-datasets:官網 讀取幾個流行的數據集的腳本,包括
- BSR 500
- CIFAR-10
- COIL
- Street View House Numbers
- MNIST
- NORB
- Atari2600:在Arcade Learning Environment模擬器中用靜態幀生成數據集的腳本。官網
Matlab
計算機視覺
- Contourlets:實現輪廓波變換及其使用函數的MATLAB源代碼。官網 。
- Shearlets:剪切波變換的MATLAB源碼。官網
- Curvelets:Curvelet變換的MATLAB源碼(Curvelet變換是對小波變換向更高維的推廣,用來在不同尺度角度表示圖像)。官網
- Bandlets:Bandlets變換的MATLAB源碼。官網
自然語言處理
- NLP:一個Matlab的NLP庫。官網
通用機器學習
- Training a deep autoencoder or a classifier on MNIST digits:在MNIST字符數據集上訓練一個深度的autoencoder或分類器。官網
- t-Distributed Stochastic Neighbor Embedding:獲獎的降維技術,特別適合於高維數據集的可視化。官網
- Spider:Matlab機器學習的完整面向對象環境。官網
- LibSVM:支持向量機程序庫。官網
- LibLinear:大型線性分類程序庫。官網
- Machine Learning Module:M. A .Girolami教授的機器學習課程,包括PDF、講義及代碼。官網
- Caffe:考慮了代碼清潔、可讀性及速度的深度學習框架。官網
- Pattern Recognition Toolbox:Matlab中的模式識別工具包、完全面向對象。官網
數據分析/數據可視化
.NET
計算機視覺
自然語言處理
- Stanford.NLP for .NET:斯坦福大學NLP包在.NET上的完全移植,還可作爲NuGet包進行預編譯。官網 。
通用機器學習
- Accord.MachineLearning:隨機抽樣一致性算法、交叉驗證、網格搜索這個包是Accord.NET框架的一部分支持向量機、決策樹、樸素貝葉斯模。型、K-means、高斯混合模型和機器學習應用的通用算法。官網:
- Vulpes:F#語言實現的Deep belief和深度學習包,它在Alea.cuBase下利用CUDA GPU來執行。官網
- Encog:先進的神經網絡和機器學習框架,包括用來創建多種網絡的類,也支。持神經網絡需要的數據規則化及處理的類它的訓練採用多線程彈性傳播。它也能使用GPU加快處理時間提供了圖形化界面來幫助建模和訓練神經網絡。官網
- Neural Network Designer:這是一個數據庫管理系統和神經網絡設計器設計器用WPF開發,也是一個UI,你可以設計你的神經網絡、查詢網絡、創建並配置聊天機器人,它能問問題,並從你的反饋中學習這些機器人甚至可以從網絡蒐集信息用來輸出,或是用來學習。官網
數據分析/數據可視化
- numl:numl這個機器學習庫,目標就是簡化預測和聚類的標準建模技術。官網
- Math.NET Numerics:Math.NET項目的數值計算基礎,着眼提供科學、工程以及日常數值計算的方法和算法支持 Windows、Linux 和 。Mac上的 .Net 4.0、.Net 3.5 和 Mono ,Silverlight 5、WindowsPhone/SL 8、WindowsPhone 8.1 以及裝有 PCL Portable Profiles 47 及 344的Windows 8, 裝有 Xamarin的Android/iOS。官網
- Sho:Sho是數據分析和科學計算的交互式環境,可以讓你將腳本(IronPython語言)和編譯的代碼(.NET)無縫連接,以快速靈活的建立原型。官網這個環境包括強大高效的庫,如線性代數、數據可視化,可供任何.NET語言使用,還爲快速開發提供了功能豐富的交互式shell
Python
計算機視覺
自然語言處理
- NLTK:一個領先的平臺,用來編寫處理人類語言數據的Python程序。官網
- Pattern:Python可用的web挖掘模塊,包括自然語言處理、機器學習等工具。官網
- TextBlob:爲普通自然語言處理任務提供一致的API,以NLTK和Pattern爲基礎,並和兩者都能很好兼容。官網。
- jieba:中文斷詞工具。官網
- SnowNLP:中文文本處理庫。官網
- loso:另一箇中文斷詞庫。官網
- genius:基於條件隨機域的中文斷詞庫。官網
- nut:自然語言理解工具包。官網
通用機器學習
- Bayesian Methods for Hackers:Python語言概率規劃的電子書。官網
- MLlib in Apache Spark:Spark下的分佈式機器學習庫。官網
- scikit-learn:基於SciPy的機器學習模塊。官網
- graphlab-create:包含多種機器學習模塊的庫(迴歸、聚類、推薦系統、圖分析等),基於可以磁盤存儲的DataFrame。官網
- BigML:連接外部服務器的庫。官網
- pattern:Python的web挖掘模塊。官網
- NuPIC:Numenta公司的智能計算平臺。官網
- Pylearn2:基於Theano的機器學習庫。官網
- hebel:Python編寫的使用GPU加速的深度學習庫。官網
- gensim:主題建模工具。官網
- PyBrain:另一個機器學習庫。官網
- Crab:可擴展的、快速推薦引擎。官網
- python-recsys:Python實現的推薦系統。官網
- thinking bayes:關於貝葉斯分析的書籍。官網
- Restricted Boltzmann Machines:Python實現的受限波爾茲曼機。官網
- Bolt:在線學習工具箱。官網
- CoverTree:cover tree的Python實現,scipy.spatial.kdtree便捷的替代。官網
- nilearn:Python實現的神經影像學機器學習庫。官網
- Shogun:機器學習工具箱。官網
- Pyevolve:遺傳算法框架。官網
- Caffe:考慮了代碼清潔、可讀性及速度的深度學習框架。官網
- breze:深度及遞歸神經網絡的程序庫,基於Theano。官網
數據分析/數據可視化
- SciPy:基於Python的數學、科學、工程開源軟件生態系統。官網
- NumPy:Python科學計算基礎包。官網
- Numba:Python的低級虛擬機JIT編譯器,Cython and NumPy的開發者編寫,供科學計算使用。官網
- NetworkX:爲複雜網絡使用的高效軟件。官網
- Pandas:這個庫提供了高性能、易用的數據結構及數據分析工具。官網
- Open Mining:Python中的商業智能工具(Pandas web接口)。官網
- PyMC:MCMC採樣工具包。官網
- zipline:Python的算法交易庫。官網
- PyDy:全名Python Dynamics,協助基於NumPy、SciPy、IPython以及 matplotlib的動態建模工作流。官網
- SymPy:符號數學Python庫。官網
- statsmodels:Python的統計建模及計量經濟學庫。官網
- astropy:Python天文學程序庫,社區協作編寫。官網
- matplotlib:Python的2D繪圖庫。官網
- bokeh:Python的交互式Web繪圖庫。官網
- plotly:Python and matplotlib的協作web繪圖庫。官網
- vincent:將Python數據結構轉換爲Vega可視化語法。官網
- d3py:Python的繪圖庫,基於D3.js。官網
- ggplot:和R語言裏的ggplot2提供同樣的API。官網
- Kartograph.py:Python中渲染SVG圖的庫,效果漂亮。官網
- pygal:Python下的SVG圖表生成器。官網
- pycascading:官網
雜項腳本/iPython筆記/代碼庫
- pattern_classification:官網
- thinking stats 2:官網
- hyperopt:官網
- numpic:官網
- 2012-paper-diginorm:官網
- ipython-notebooks:官網
- decision-weights:官網
- Sarah Palin LDA:Sarah Palin關於主題建模的電郵。官網
- Diffusion Segmentation:基於擴散方法的圖像分割算法集合。官網
- Scipy Tutorials:SciPy教程,已過時,請查看scipy-lecture-notes。官網
- Crab:Python的推薦引擎庫。官網
- BayesPy:Python中的貝葉斯推斷工具。官網
- scikit-learn tutorials:scikit-learn學習筆記系列。官網
- sentiment-analyzer:推特情緒分析器。官網
- group-lasso:座標下降算法實驗,應用於(稀疏)羣套索模型。官網
- mne-python-notebooks:使用 mne-python進行EEG/MEG數據處理的IPython筆記。官網
- pandas cookbook:使用Python pandas庫的方法書。官網
- climin:機器學習的優化程序庫,用Python實現了梯度下降、LBFGS、rmsprop、adadelta 等算法。官網
Kaggle競賽源代碼
- wiki challange:Kaggle上一個維基預測挑戰賽 Dell Zhang解法的實現。官網
- kaggle insults:Kaggle上”從社交媒體評論中檢測辱罵“競賽提交的代碼。官網
- kaggle_acquire-valued-shoppers-challenge:Kaggle預測回頭客挑戰賽的代碼。官網
- kaggle-cifar:Kaggle上CIFAR-10 競賽的代碼,使用cuda-convnet。官網
- kaggle-blackbox:Kaggle上blackbox賽代碼,關於深度學習。官網
- kaggle-accelerometer:Kaggle上加速度計數據識別用戶競賽的代碼。官網
- kaggle-advertised-salaries:Kaggle上用廣告預測工資競賽的代碼。官網
- kaggle amazon:Kaggle上給定員工角色預測其訪問需求競賽的代碼。官網
- kaggle-bestbuy_big:Kaggle上根據bestbuy用戶查詢預測點擊商品競賽的代碼(大數據版)。官網
- kaggle-bestbuy_small:Kaggle上根據bestbuy用戶查詢預測點擊商品競賽的代碼(小數據版)。官網
- Kaggle Dogs vs. Cats:Kaggle上從圖片中識別貓和狗競賽的代碼。官網
- Kaggle Galaxy Challenge:Kaggle上遙遠星系形態分類競賽的優勝代碼。官網
- Kaggle Gender:Kaggle競賽,從筆跡區分性別。官網
- Kaggle Merck:Kaggle上預測藥物分子活性競賽的代碼(默克製藥贊助)。官網
- Kaggle Stackoverflow:Kaggle上 預測StackOverflow網站問題是否會被關閉競賽的代碼。官網
- wine-quality:預測紅酒質量。官網
Ruby
自然語言處理
- Treat:文本檢索與註釋工具包,Ruby上我見過的最全面的工具包。官網
- Ruby Linguistics:這個框架可以用任何語言爲Ruby對象構建語言學工具包。括一個語言無關的通用前端,一個將語言代碼映射到語言名的模塊,和一個含有很有英文語言工具的模塊。官網
- Stemmer:使得Ruby可用 libstemmer_c中的接口。官網
- Ruby Wordnet:WordNet的Ruby接口庫。官網
- Raspel:aspell綁定到Ruby的接口。官網
- UEA Stemmer:UEALite Stemmer的Ruby移植版,供搜索和檢索用的保守的詞幹分析器。官網
- Twitter-text-rb:該程序庫可以將推特中的用戶名、列表和話題標籤自動連接並提取出來。官網
通用機器學習
- Ruby Machine Learning:Ruby實現的一些機器學習算法。官網
- Machine Learning Ruby:官網
- jRuby Mahout:精華!在JRuby世界中釋放了Apache Mahout的威力。官網
- CardMagic-Classifier:可用貝葉斯及其他分類法的通用分類器模塊。官網
- Neural Networks and Deep Learning:《神經網絡和深度學習》一書的示例代碼。官網
數據分析/數據可視化
- rsruby:Ruby - R bridge。官網
- data-visualization-ruby:關於數據可視化的Ruby Manor演示的源代碼和支持內容。官網
- ruby-plot:將gnuplot包裝爲Ruby形式,特別適合將ROC曲線轉化爲svg文件。官網
- plot-rb:基於Vega和D3的ruby繪圖庫。官網
- scruffy:Ruby下出色的圖形工具包。官網
- SciRuby:官網
- Glean:數據管理工具。官網
- Bioruby:官網
- Arel:官網
Misc 雜項
- Big Data For Chimps:大數據處理嚴肅而有趣的指南書。官網
R
通用機器學習
- Clever Algorithms For Machine Learning:官網。
- Machine Learning For Hackers:官網。
- Machine Learning Task View on CRAN:R語言機器學習包列表,按算法類型分組。官網。
- caret:R語言150個機器學習算法的統一接口。官網
- SuperLearner:該包集合了多種機器學習算法與subsemble
- Introduction to Statistical Learning:官網。
數據分析/數據可視化
Scala
自然語言處理
- ScalaNLP:機器學習和數值計算庫的套裝。官網
- Breeze:Scala用的數值處理庫。官網
- Chalk:自然語言處理庫。官網
- FACTORIE:可部署的概率建模工具包,用Scala實現的軟件庫爲用戶提供簡潔的語言來創建關係因素圖,評估參數並進行推斷。官網。
數據分析/數據可視化
- MLlib in Apache Spark:Spark下的分佈式機器學習庫。官網
- Scalding:CAscading的Scala接口。官網
- Summing Bird:用Scalding 和 Storm進行Streaming MapReduce。官網
- Algebird:Scala的抽象代數工具。官網
- xerial:Scala的數據管理工具。官網
- simmer:化簡你的數據,進行代數聚合的unix過濾器。官網
- PredictionIO:供軟件開發者和數據工程師用的機器學習服務器。官網
- BIDMat:支持大規模探索性數據分析的CPU和GPU加速矩陣庫。官網