推薦!國外工程師整理的機器學習資源大全

(點擊上方公眾號,可快速關注)

英文:josephmisiti
譯文:伯樂在線專欄作者 – toolate
鏈接:http://blog.jobbole.com/73806/
點擊 → 了解如何加入專欄作者

本文匯編了 josephmisiti 組織整理的一些機器學習領域的框架、庫以及軟體(按編程語言排序)。

伯樂在線已在 GitHub 上發起「機器學習資源大全中文版」的整理。歡迎擴散、歡迎加入。

https://github.com/jobbole/awesome-machine-learning-cn

C++

計算機視覺

  • CCV —基於C語言/提供緩存/核心的機器視覺庫,新穎的機器視覺庫

  • OpenCV—它提供C++, C, Python, Java 以及 MATLAB接口,並支持Windows, Linux, Android and Mac OS操作系統。

通用機器學習

  • MLPack

  • DLib

  • ecogg

  • shark

Closure

通用機器學習

  • Closure Toolbox—Clojure語言庫與工具的分類目錄

Go

自然語言處理

  • go-porterstemmer—一個Porter詞幹提取算法的原生Go語言淨室做到

  • paicehusk—Paice/Husk詞幹提取算法的Go語言做到

  • snowball—Go語言版的Snowball詞幹提取器

通用機器學習

  • Go Learn— Go語言機器學習庫

  • go-pr —Go語言機器學習包.

  • bayesian—Go語言樸素貝葉斯分類庫。

  • go-galib—Go語言遺傳算法庫。

數據分析/數據可視化

  • go-graph—Go語言圖形庫。

  • SVGo—Go語言的SVG生成庫。

Java

自然語言處理

  • CoreNLP—史丹佛大學的CoreNLP提供一系列的自然語言處理工具,輸入原始英語文本,可以給出單詞的基本形式(下面Stanford開頭的幾個工具都包含其中)。

  • Stanford Parser—一個自然語言解析器。

  • Stanford POS Tagger —一個詞性分類器。

  • Stanford Name Entity Recognizer—Java做到的名稱識別器

  • Stanford Word Segmenter—分詞器,很多NLP工作中都要用到的標準預處理步驟。

  • Tregex, Tsurgeon and 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—提供一個簡單的大規模實時機器學習/預測分析基礎架構。

數據分析/數據可視化

  • Hadoop—大數據分析平台

  • Spark—快速通用的大規模數據處理引擎。

  • Impala —為Hadoop做到實時查詢

Javascript

自然語言處理

  • Twitter-text-js —JavaScript做到的推特文本處理庫

  • NLP.js —javascript及coffeescript編寫的NLP工具

  • natural—Node下的通用NLP工具

  • Knwl.js—JS編寫的自然語言處理器

數據分析/數據可視化

  • D3.js

  • High Charts

  • NVD3.js

  • dc.js

  • chartjs

  • dimple

  • amCharts

通用機器學習

  • 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做到的神經網路

自然語言處理

  • Topic Models —Julia下的主題建模

  • Text Analysis—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中的模式識別工具包,完全面向對象

數據分析/數據可視化

  • matlab_gbl—處理圖像的Matlab包

  • gamic—圖像算法純Matlab高效做到,對MatlabBGL的mex函數是個補充。

.NET

計算機視覺

  • OpenCVDotNet —包裝器,使.NET程序能使用OpenCV代碼

  • Emgu CV—跨平台的包裝器,能在Windows, Linus, Mac OS X, iOS, 和Android上編譯。

自然語言處理

  • Stanford.NLP for .NET —史丹佛大學NLP包在.NET上的完全移植,還可作為NuGet包進行預編譯。

通用機器學習

  • Accord.MachineLearning —支持向量機、決策樹、樸素貝葉斯模型、K-means、高斯混合模型和機器學習應用的通用算法,例如:隨機抽樣一致性算法、交叉驗證、網格搜尋。這個包是Accord.NET框架的一部分。

  • 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

計算機視覺

  • SimpleCV—開源的計算機視覺框架,可以訪問如OpenCV等高性能計算機視覺庫。使用Python編寫,可以在Mac、Windows以及Ubuntu上運行。

自然語言處理

  • 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上 預測Stack Overflow網站問題是否會被關閉競賽的代碼

  • 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 and subsemble—該包集合了多種機器學習算法

  • Introduction to Statistical Learning

數據分析/數據可視化

  • Learning Statistics Using R

  • ggplot2—基於圖形語法的數據可視化包。

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加速矩陣庫。

通用機器學習

  • Conjecture—Scalding下可擴展的機器學習框架

  • brushfire—scalding下的決策樹工具。

  • ganitha —基於scalding的機器學習程序庫

  • adam—使用Apache Avro, Apache Spark 和 Parquet的基因組處理引擎,有專用的文件格式,Apache 2軟體許可。

  • bioscala —Scala語言可用的生物信息學程序庫

  • BIDMach—機器學習CPU和GPU加速庫。


伯樂在線已在 GitHub 上發起「機器學習資源大全中文版」的整理。歡迎擴散、歡迎加入。

https://github.com/jobbole/awesome-machine-learning-cn

【提醒】:因微信中不支持外鏈,點擊「閱讀原文」可在網頁版查看這些資源。

【今日微信公號推薦↓】

更多推薦請看值得關注的技術和設計公眾號

其中推薦了包括技術設計極客 和 IT相親相關的熱門公眾號。技術涵蓋:Python、Web前端、Java、安卓、iOS、PHP、C/C++、.NET、Linux、數據庫、運維、大數據、算法、IT職場等。點擊《值得關注的技術和設計公眾號》,發現精彩!

閱讀原文


關於作者:
人生苦短,我用Python。伯樂在線旗下帳號「Python開發者」分享Python相關的技術文章、工具資源、精選課程、熱點資訊等。

微信號:PythonCoder