机器学习(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
torch-datasets - 用于加载多个大众数据集的脚本,数据集包括以下:
- BSR 500
- CIFAR-10
- COIL
- Street View House Numbers
- MNIST
- NORB
Atari2600 - 从Arcade学习环境的静态帧中生成数据集的脚本。
Matlab
计算机视觉php
天然语言处理html
通用机器学习前端
数据分析/数据可视化python
- matlab_gbl – 处理图形问题的MATLAB程序包;
- gamic - 图形算法用纯Matlab高效实现,以补充MatlabBGL的MEX函数;
.NETios
计算机视觉git
- 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;
天然语言处理github
通用机器学习web
- 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。
Objectiveshell
通用机器学习
OCaml
通用机器学习
- Oml – 通用的统计学和机器学习库;
- GPR - OCaml中高效的高斯过程回归算法;
- Libra-Tk – 用离散几率模型学习和推理的算法。
PHP
天然语言处理
通用机器学习
Python
计算机视觉
天然语言处理
- 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;
通用机器学习
数据分析/数据可视化
杂项脚本/iPython笔记/代码库
Kaggle竞赛源码
Ruby
天然语言处理
通用机器学习
数据分析/数据可视化
杂项
Rust
通用机器学习
R
通用机器学习
数据分析/数据可视化
SAS
通用机器学习
数据分析/数据可视化
高性能机器学习
天然语言处理
示例和脚本
Scala
天然语言处理
- ScalaNLP - ScalaNLP一系列机器学习和数值计算库的集合;
- Breeze - Breeze是Scala中的的数值处理库;
- Chalk - Chalk是一个天然语言处理库.
- FACTORIE - FACTORIE是可部署的几率建模工具包,用Scala实现的软件库。为用户提供简洁的语言来建立关系因素图,评估参数并进行推断 。
数据分析/数据可视化
通用机器学习
Swift
通用机器学习
- Swift AI - Swift语言编写的高度优化的人工智能和机器学习;
- BrainCore - 支持iOS和 OS X的神经网络框架;
- DeepLearningKit--支持苹果iOS OS X和tvOS系统的开源深度学习框架。目前支持在苹果操做系统上利用Caffe训练深度卷积网络模型;
- AIToolbox - A toolbox framework of AI modules written in Swift: Swift语言编写的人工智能(AI)模型工具框架:图/树、线性回归、支持向量机、神经网络、PCA、KMeans、遗传算法、MDP和 混合高斯模型。
以上为“史上最全机器学习资料”的所有内容,更多精彩敬请期待。
译者:刘崇鑫 校对:王殿进