Awesome
机器学习资源大全中文版
我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理。awesome-machine-learning 就是 josephmisiti 发起维护的机器学习资源列表,内容包括了机器学习领域的框架、库以及软件(按编程语言排序)。
Awesome 系列虽然挺全,但基本只对收录的资源做了极为简要的介绍,如果有更详细的中文介绍,对相应开发者的帮助会更大。这也是我们发起这个开源项目的初衷。
我们要做什么?
- 基于 awesome-machine-learning 资源列表,我们将对各个资源项进行编译整理。
- 整理后的内容,将收录在伯乐在线资源频道。可参考已整理的内容:
如何参与本项目?
<!-- 从下面的目录来看,本项目的工作量小不了,所以非常期待能有更多程序员一起来参与。 不过加入前,有几个小要求: * 英文还不错,能读懂英文并用自己的话复述; * 有 机器学习 相关的开发经验; 如有兴趣,请加 QQ:50872495。加 Q 时请注明「机器学习大全」 -->本项目的参与者
注:名单不分排名,不定期补充更新
<!-- ### 奖励计划 虽然奖励可能并不是你加入的主要原因,但还是有必要提一下: * 整理超过 20 个资源后,可在伯乐在线上开通打赏; * 每整理 20 个资源,有机会获得技术书籍或各种有意思的创意、极客产品; * [奖励详情](http://hao.importnew.com/rewards/) * * * -->
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加速矩阵库。官网
通用机器学习
- Conjecture:Scalding下可扩展的机器学习框架。官网
- brushfire:scalding下的决策树工具。官网
- ganitha:基于scalding的机器学习程序库。官网
- adam:使用Apache Avro, Apache Spark 和 Parquet的基因组处理引擎,有专用的文件格式,Apache 2软件许可。官网
- bioscala:Scala语言可用的生物信息学程序库。官网
- BIDMach:机器学习CPU和GPU加速库。官网