原文
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习牵涉的编程语言十分之广,包括了MATLAB、Julia、R、Perl、Python、Clojure、Ruby等等。
为了让开发者更加广泛、深入地了解机器学习,云栖社区组织翻译了GitHub Awesome Machine Learning 资源,涵盖24种编程语言的机器学习的框架、库以及其他相关资料。
Lua
通用机器学习
Torch7
cephes– 由Torch包装的Cephes数学函数库,由Stephen L. Moshier开发,库中提供并包装了从Cephes数学库中的180多个特殊的数学函数,是SciPy的核心,作用广泛;
autograd– Autograd自动区分本机Torch代码,受原始的Python版本的启发;
graph– Torch的图形包;
randomkit– 从Numpy提取的随机数生成包,包装成Torch可用形式;
signal– 适用Torch-7的信号处理工具箱,包括FFT、DCT、Hilbert、cepstrums、stft等变换;
nn– Torch的神经网络包;
nngraph– 此软件包为Torch7 nn库提供图形计算;
nnx– 一个不稳定的实验包,能够扩展Torch的内置nn库;
rnn– 能够扩展Torch nn库的递推神经网络库,包括RNNs、LSTMs、GRUs、BRNNs、BLSTMs等等;
dpnn– 许多有用的功能,并不是主要的神经网络包的一部分;
dp– 深度学习库,专门使用Torch7分配进行合理化的研究和开发,它强调通过优雅地使用面向对象的设计模式,从而实现灵活性;
optim– 针对Torch的优化库,包括Adagrad、共轭梯度、LBFGS, RProp等算法;
unsup– Torch中的无监督学习包,提供了与nn相兼容的模块((LinearPsd、ConvPsd、AutoEncoder等),以及独立的算法(k-均值、PCA);
manifold– 操作流形的包;
svm– Torch的支持向量机库;
lbfgs– 针对liblbfgs的FFT包;
vowpalwabbit– torch的旧式vowpalwabbit接口;
OpenGM– OpenGM是一个用于图形化建模和推断的C++库, Lua binding提供了一种简单的描绘图形的方法,用Lua描绘,再用OpenGM优化;
sphagetti– @MichaelMathieu开发的用于torch7的Spaghetti(稀疏线型)模块;
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
演示与脚本
torch7核心演示资源库
线性回归,逻辑回归;
面部检测器(训练和检测作为独立的演示);
基于mst的分段器;
train-a-digit-classifier
train-autoencoder
optical flow demo
train-on-housenumbers
train-on-cifar
深层网络追踪;
Kinect 演示;
滤波组件可视化;
网络卓越度;
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学习环境的静态帧中生成数据集的脚本。
Matlab
计算机视觉
Contourlets–MATLAB源代码,能够实现轮廓变换及其效用函数;
Shearlets–剪切波变换的MATLAB代码;
Curvelets–曲波变换是小波变换的高维推广,用于表示不同尺度和不同角度的图像;
Bandlets– bandlet变换的MATLAB代码;
mexopencv– 针对OpenCV库,用于收集和开发MATLAB MEX函数的套件;
自然语言处理
NLP– 用于Mablab的NLP库;
通用机器学习
Training a deep autoencoder or a classifier on MNIST digits– 在MNIST数字上训练深度自编码或深度分类[深度学习];
Convolutional-Recursive Deep Learning for 3D Object Classification– 针对三维目标分类的卷积递归深度学习[深度学习];
t-Distributed Stochastic Neighbor Embedding– T-分布式随机邻域嵌入(T-SNE)法,已获奖,该降维技术特别适合高维数据集的可视化;
Spider– Matlab中完整的面向对象的环境,用于机器学习;
LibSVM– 支持向量机程序库;
LibLinear– 大型线性分类库;
Machine Learning Module– 机器学习课程,包括PDF、讲义及代码;
Caffe– 深度学习框架,开发时考虑到了清洁度,可读性和速度;
Pattern Recognition Toolbox– Matlab中完整的面向对象环境,用于机器学习;
Pattern Recognition and Machine Learning– C. Bishop在书Pattern Recognition and Machine Learning中描述了一个算法,该软件包包含了书中算法的matlab实现;
Optunity– 该库致力于用简单、轻量级的API进行自动超参数优化,以方便直接替换网格搜索;Optunity用Python编写,但与MATLAB无缝连接;
数据分析/数据可视化
matlab_gbl– 处理图形问题的MATLAB程序包;
gamic– 图形算法用纯Matlab高效实现,以补充MatlabBGL的MEX函数;
.NET
计算机视觉
OpenCVDotNet– OpenCV工程封装器,用于.NET应用程序;
Emgu CV– OpenCV的跨平台封装器,可在Mono中编译,并运行于Windows、Linus、Mac OS X、 iOS、Android等系统;
AForge.NET– 开放源码C#框架,用于计算机视觉和人工智能领域的开发和研究人员,目前已转移到GitHub发展;
Accord.NET-连同AForge.NET,可为Windows、Windows RT和Windows Phone提供图像处理和计算机视觉算法,一些组件适用于Java和Android;
自然语言处理
Stanford.NLP for .NET– 斯坦福大学NLP包在.NET上的完整移植,也可作为NuGet包进行预编译;
通用机器学习
Accord-Framework– 完整的Accord.NET框架,用于机器学习,计算机视觉,计算机试听,信号处理和统计应用;
Accord.MachineLearning–该软件包是Accord.NET框架的一部分,包括支持向量机、决策树、朴素贝叶斯模型、K均值、高斯混合模型和一些通用算法,例如适用于机器学习应用的RANSAC、交叉验证和网格搜索;
DiffSharp– 一个自动微分(AD)库,能够提供精确高效,用于机器学习和优化应用的导数(梯度、Hessians、雅可比行列式、方向导数、无矩阵Hessian-和雅可比矢量积),操作可以嵌套到任何级别,这意味着你可以通过利用内部微分,来计算精确的高阶导数,如超参数优化函数的应用;
Vulpes– F#写的Deep belief与深度学习的实现,并在Alea.cuBase下用CUDA GPU执行;
Encog–一种先进的神经网络和机器学习框架。 Encog包含用于创建各类网络的类,同时也支持为神经网络规范和处理数据的类。它的训练采用多线程弹性传播。同时使用GPU加快处理时间,此外还提供了图形化界面来帮助建模和训练神经网络;
Neural Network Designer– DBMS管理系统和神经网络的设计平台,该设计应用程序使用WPF开发,是一个用户界面,允许用户设计自己的神经网络,查询网络,创建和配置能够提出问题、并能从反馈中学习的聊天机器人,聊天机器人甚至可以搜集Internet上的信息,以便在返回时输出,或者用于学习;
数据分析/数据可视化
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– 用于数据分析和科学计算的交互环境,可以使用编译代码(.NET)无缝连接脚本(用IronPython),以实现快速、灵活的原型设计;该环境包括线性代数、数据可视化等强大高效的库,可供任何.NET语言使用,还为快速开发提供了功能丰富的交互式shell。
Objective
通用机器学习
YCML– 用于Objective-C 和Swift (OS X / iOS)的机器学习框架;
MLPNeuralNet–用于 iOS and Mac OS X的快速多层感知神经网络库,可通过神经网络预测新实例,建立在苹果公司的加速框架之上,如果需要,可利用向量化操作和硬件加速操作;
MAChineLearning– Objective-C多层感知库,通过反向传播全面支持训练,用vDSP和vecLib实现,比同等情况下的Java快20倍,包括从Swift使用的示例代码;
BPN-NeuralNetwork– 能够实现3层神经网络(输入层、隐藏层和输出层),其命名来源于BP神经网络(BPN),可用于产品建议、用户行为分析、数据挖掘和数据分析;
Multi-Perceptron-NeuralNetwork-它能够实现基于BPN的多感知神经网络,并设计于无限隐藏层上;
KRHebbian-Algorithm– 机器学习神经网络中的非监督和自学习算法(调整权重);
KRKmeans-Algorithm– 它实现了K-均值聚类和分类算法,可用于数据挖掘和图像压缩;
KRFuzzyCMeans-Algorithm– 它实现了机器学习中的模糊C均值(FCM)模糊聚类/分类算法,可用于数据挖掘和图像压缩;
OCaml
通用机器学习
Oml– 通用的统计学和机器学习库;
GPR– OCaml中高效的高斯过程回归算法;
Libra-Tk– 用离散概率模型学习和推理的算法。
PHP
自然语言处理
jieba-php–中文分词工具。
通用机器学习
PredictionBuilder-采用线性回归建立预测的机器学习库。
Python
计算机视觉
Scikit-Image– Python图像处理算法的集合;
SimpleCV– 一个开源的计算机视觉框架,能够访问如OpenCV的高性能计算机视觉库,用Python编写,可运行在Mac、Windows和Ubuntu Linux等操作系统;
Vigranumpy– Python绑定的VIGRA C++计算机视觉库;
OpenFace-免费的开源面部识别深层神经网络;
自然语言处理
NLTK-用人类语言数据编写Python程序的一个领先平台;
Pattern– Python编程语言的Web挖掘模块,有用于自然语言处理、机器学习等的工具;
Quepy–一个Python框架,将自然语言问题转换成数据库查询语言;
TextBlob– 给常规的自然语言处理(NLP)任务提供一致的API,以NLTK和Pattern为基础,并和两者都能很好兼容;
YAlign– 语句校准器,较好地用于从比较语料库中提取并行语句;
jieba-中文分词工具;
SnowNLP–用于处理中文文本的库;
spammy– 建在NLTK之上的库,用于垃圾邮件过滤;
loso– 另一个中文分词库;
genius– 基于条件随机域的中文断词库;
KoNLPy– 用于韩语自然语言处理的Python包;
nut-自然语言理解工具包;
Rosetta-文本处理工具和包装器(例如Vowpal Wabbit);
BLLIP Parser– Python绑定的BLLIP自然语言解析器(也称为Charniak-Johnson解析器);
PyNLPl– Python的自然语言处理库,Python的通用NLP库,还包含一些特定模块,用于常规的NLP格式分析,尤其是FoLiA和ARPA语言模型,Moses phrasetables,GIZA++ alignments等;
python-ucto– Python绑定的ucto(包括Unicode,基于规则,各种语言的的标记生成器);
python-frog– Python绑定的Frog,用于Dutch的NLP套件(词性标注,词性还原,依存分析,NER);
python-zpar– Python绑定的ZPar,统计性的部分词性标注,constiuency解析器和英语依存句法分析;
colibri-core– Python绑定的C++库,用于以快速和存储器高效的方式提取并使用基本语言结构,例如-grams 和skipgrams;
spaCy– 使用Python和Cython,NLP的产业优势;
PyStanfordDependencies–Python接口,用于将Penn Treebank树转换成Stanford Dependencies;
通用机器学习
machine learning-自动构建网络接口,编程接口API套件,用于支持向量机;相应的数据集(多个)存储到一个SQL数据库,然后生成用于预测的模型(多个),再被存储到NoSQL数据存储中;
XGBoost– Python绑定的 eXtreme Gradient Boosting(树)库;
Bayesian Methods for Hackers-关于Python编程概率规划的图书/ IPythonnotebook;
Featureforge-用于创建和测试机器学习的特点的一组工具,具有兼容scikit学习的API;
MLlib in Apache Spark– Spark下的分布式机器学习库;
scikit-learn-基于SciPy的机器学习模块;
metric-learn– 测度学习的Python模块;
SimpleAI– 实现了许多书Artificial Intelligence, a Modern Approach书中描述的人工智能算法,着重于提供一个易于使用、方便存档和测试的库;
astroML– 用于天文学的机器学习和数据挖掘;
graphlab-create– 实现各种机器学习模型(回归、聚类、推荐系统、图形分析等)的库,基于可以磁盘存储的DataFrame;
BigML– 用于连接外部服务器的库;
pattern– Python Web挖掘模块;
NuPIC– 智能计算的Numenta平台;
Pylearn2– 基于Theano的机器学习库;
keras-基于Theano的模块化神经网络库;
hebel– Python下的GPU加速深度学习库;
Chainer-灵活的神经网络架构;
gensim– 主题建模工具;
topik-主题建模工具包;
PyBrain-另一个Python机器学习库;
Brainstorm– 继PyBrain后,快速、灵活、有趣的神经网络;
Crab– 灵活、快速的推荐引擎;
python-recsys– 实现推荐系统的Python库;
thinking bayes– 关于贝叶斯分析的书籍;
Restricted Boltzmann Machines– Python编写的受限的玻尔兹曼机[深度学习];
Bolt– Bolt在线学习工具箱;
CoverTree– cover tree的Python实现,scipy.spatial.kdtree便捷的替代;
nilearn– Python编写的用于神经影像的机器学习;
Shogun– Shogun机器学习工具箱;
Pyevolve-遗传算法框架;
Caffe– 深度学习框架,开发时考虑了清洁度、可读性和速度;
breze– 基于Theano的用于深层递归神经网络的库;
pyhsmm– 用于近似无监督推论的库,存在于贝叶斯隐马尔可夫模型(HMM模型)和隐藏式半马尔可夫模型(HSMMs),HDP-HMM和HDP-HSMM侧重于非参数贝叶斯扩展,大多是弱极限近似值;
mrjob– 让Python程序运行在Hadoop上的库;
SKLL– scikit-learn的包装器,使其实验起来较容易;
neurolab–https://github.com/zueve/neurolab
Spearmint– Spearmint是根据论文中提出的算法执行贝叶斯优化的程序包,论文如下:Practical Bayesian Optimization of Machine Learning Algorithms. Jasper Snoek, Hugo Larochelle and Ryan P. Adams. Advances in Neural Information Processing Systems, 2012.
Pebl-贝叶斯学习的Python环境;
Theano– 在Python中,用优化的GPU元编程代码生成阵列导向的优化数学编译器;
TensorFlow-使用数据流图进行数值计算的开源软件库;
yahmm– Python下的隐马尔可夫模型,考虑到速度和效率,用Cython来实现;
python-timbl– 一个Python扩展模块,可包装完整的TiMBL C ++编程接口;Timbl是一个详尽的k最近邻域机器学习工具包;
deap-进化算法框架;
pydeep– Python下的深度学习;
mlxtend-工具库,包括对数据科学和机器学习任务等非常有用的工具;
neon– Nervana基于Python的高性能深度学习框架[深度学习];
Optunity– 该库致力于用一个简单、轻量级的API直接替换网格搜索以实现自动超参数优化;
Neural Networks and Deep Learning– 《神经网络和深度学习》一书中的代码示例[深度学习];
Annoy– 近似最近邻算法的实现;
skflow-为TensorFlow简化的界面,模仿了Scikit Learn;
TPOT– 使用遗传编程自动创建并优化了机器学习流水线的工具;
pgmpy– 用于概率图解模型的Python库;
DIGITS-深度学习GPU训练系统(DIGITS)是用于训练深度学习模型的Web应用程序;
Orange–同时适用于初学者和专家的开源数据可视化和数据分析;
MXNet– 轻量级、便携式、灵活的分布式/深度学习系统,可对动态的、突变数据流调度部署,同时也支持Python、R、Julia、Go、Javascript 等编程语言。
milk– 强调监督分类法的机器学习工具包;
TFLearn-针对TensorFlow的高层次API深度学习库。
作者:readilen
链接:https://www.jianshu.com/p/d556af7de634
來源:
著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。