最全的机器学习资料汇总

  • Post author:
  • Post category:其他



摘要:


机器学习

牵涉的编程语言十分之广,包括了MATLAB、

Python

、Clojure、Ruby等等。为了让开发者更加广泛、深入地了解机器学习,云栖社区组织翻译了GitHub Awesome Machine Learning 资源,涵盖24种编程语言的机器学习的框架、库以及其他相关资料。


机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习牵涉的编程语言十分之广,包括了MATLAB、Julia、R、Perl、Python、Clojure、Ruby等等。

为了让开发者更加广泛、深入地了解机器学习,云栖社区组织翻译了GitHub Awesome Machine Learning 资源,涵盖24种编程语言的机器学习的框架、库以及其他相关资料。



目录




C





通用机器学习







  • Recommender













    一个C语言库,利用协同过滤


    (CF)


    进行产品推荐/建议;



  • Darknet










    是一个用C和CUDA编写的开源神经网络框架,它速度快,易于安装,并支持CPU和GPU计算。







计算机视觉







  • CCV











    基于C语言、高速缓存的核计算机视觉库,是一个现代化的计算机视觉库;






  • VLFeat











    开放、可便携的计算机视觉算法库,内有matlab工具箱。







语音识别







  • HTK













    隐马尔可夫模型工具包(HTK)是一个便携式工具包,用于构建和操作隐马尔可夫模型。




C++







计算机视觉







  • OpenCV













    OpenCV自带


    C ++、C、Python、Java和MATLAB


    接口,并支持Windows、Linux、Android版和Mac OS等系统;






  • DLib













    DLib有C ++和Python接口,用于人脸检测和训练通用的目标探测器;






  • EBLearn













    Eblearn是一种面向对象的C++库,能够实现各种机器学习模型;






  • VIGRA













    VIGRA是通用跨平台的C++计算机视觉和机器学习库,能够用Python绑定任意维度的体积。







通用机器学习







  • mlpack













    可扩展的C++机器学习库;






  • DLib













    ML工具套件,能够很容易嵌入到其他应用程序中;






  • encog-cpp








  • shark








  • Vowpal Wabbit (VW)













    一个快速的


    核外





    out





    of





    core







    学习系统;






  • sofia-ml













    快速增量算法套件;






  • Shogun













    Shogun


    机器学习工具箱;






  • Caffe













    基于清洁度、可读性和速度考虑而开发的深度学习框架。[深度学习]






  • CXXNET













    另一个深度学习框架,其核心代码少于1000行;[深度学习]






  • XGBoost













    一种并行、优化、通用的梯度推进库;






  • CUDA













    利用C++ / CUDA快速实现卷积;[深度学习]






  • Stan













    一种概率性的编程语言,能够实现


    Hamiltonian Monte Carlo


    抽样的全贝叶斯统计推断;






  • BanditLib













    一个简单、有多重保护的


    Bandit


    库;






  • Timbl






    :一个软件包/ C ++库,能够实现多种基于内存的学习算法,其中有


    IB1-IG–


    k-最近邻分类的实现、


    IGTree–


    IB1-IG


    的决策树近似值;常用于NLP;






  • Disrtibuted Machine learning Tool Kit (DMTK)











    微软开发的分布式机器学习(参数服务器)框架,能够在多台机器的大型数据集上实现训练模型,与它捆绑的现有工具包括:


    LightLDA


    和分布式(多传感)字嵌入;






  • igraph













    通用图形库;






  • Warp-CTC













    在CPU和GPU上快速并行地实现连接时域分类(


    Connectionist Temporal Classification





    CTC


    );






  • CNTK













    微软研究院开发的计算网络工具包(CNTK),它作为一系列计算步骤,通过有向图来描述神经网络,是统一的深度学习工具包;






  • DeepDetect













    一个机器学习API,服务器用C++11编写,它使机器学习的状态易于工作,并容易集成到现有应用程序;






  • Fido













    一个高度模块化的C++机器学习库,用于嵌入式电子产品和机器人中。







自然语言处理







  • MIT Information Extraction Toolkit













    C,C ++和Python的工具,用于命名实体识别与关系抽取;






  • CRF++













    条件随机域(


    Conditional Random Fields





    CRFs


    )的开源实现,用于分割/标记序列数据及其他自然语言处理任务;






  • CRFsuite













    条件随机域(


    CRFs


    )的实现,用于标记序列数据;






  • BLLIP Parser













    BLLIP


    自然语言解析器(也称为


    Charniak-Johnson


    解析器);






  • colibri-core













    是C++库、命令行工具,和Python绑定用于提取与使用基本的语言结构,例如用快速和高效存储的方式实现


    n-grams





    skipgrams


    模型;






  • ucto













    是一种工具和C++库,基于支持各种语言的编译器,内含统一字符标准及规则表达式;支持


    FoLiA


    格式;






  • libfolia













    支持



    FoLiA


    格式



    的C++库;






  • frog
















    Dutch


    开发的基于内存的NLP套件:POS标签、归类分析、依存句法分析、NER、浅层句法分析、形态分析;






  • MeTA















    MeTA : ModErn


    语篇分析(


    ModErn Text Analysis









    ,是一个C++数据科学工具包,便于挖掘大文本数据。







语音识别







  • Kaldi













    Kaldi


    是用于语音识别的工具包,用C++编写,由Apache许可证V2.0协议授权,专门给语音识别的研究人员使用。




序列分析







  • ToPS













    这是一种面向对象的框架,便于在用户定义的字母序列中整合概率模型。







手势检测







  • grt













    手势识别工具包(GRT)是一个跨平台、开源的C++机器学习库,用于实时的手势识别。







Common Lisp





通用机器学习







  • mgl













    神经网络(玻耳兹曼机,前馈和循环网络)以及高斯过程;






  • mgl-gpr













    演化算法;






  • cl-libsvm













    LIBSVM支持向量机库的包装。








Clojure









自然语言处理










通用机器学习







  • Touchstone





    – Clojure A/B


    测试库;





  • Clojush





    – Clojure


    中的Push程序语言和PushGP遗传编程系统








  • Infer





    – Clojure


    中分析和机器学习的工具;





  • Clj-ML








    Clojure中基于Weka及其相关环境的深度学习库;





  • Encog











    Clojure


    中封装成


    Encog (v3)


    (专门研究神经网络的机器学习框架);





  • Fungp





    –  Clojure


    中的遗传编程实例库;





  • Statistiker








    Clojure中基础机器学习算法;





  • clortex








    采用


    Numenta’s Cortical


    学习算法的通用机器学习库;





  • comportex








    采用


    Numenta’s Cortical


    学习算法的功能组合的机器学习库。








数据分析/数据可视化











  • Incanter





    – Incanter


    是基于


    Clojure


    ,类似R的统计计算与制图平台








  • PigPen





    –  Clojure


    中的Map-Reduce;





  • Envision








    基于


    Statistiker





    D3Clojure


    数据可视化库。





Erlang









通用机器学习









  • Disco






    Erlang中的


    Map Reduce


    模型。





Go









自然语言处理









  • go-porterstemmer








    一个用于实现


    Porter词干提取算法的原生Go语言净室;





  • paicehusk








    Go语言中用于实现


    Paice/Husk词干提取算法;





  • snowball








    Go语言中的


    Snowball


    词干提取器;





  • go-ngram








    内存N-gram索引压缩













通用机器学习









  • Go Learn








    Go语言中的机器学习库;





  • go-pr








    Go语言中的模式识别包;





  • go-ml








    线性/逻辑回归、神经网络、协同过滤和多元高斯分布;





  • bayesian








    Go语言中朴素


    贝叶斯分类库;





  • go-galib










    Go语言版的遗传算法库;





  • Cloudforest








    GO语言中的决策树集合;





  • gobrain








    GO语言版的神经网络;





  • GoNN





    – GoNN


    是用Go语言实现的神经网络,它包括BPNN、RBF、PCN










  • MXNet








    轻量级、便携式、灵活的分布式/深度学习系统,可对动态的、突变数据流调度部署,同时也支持Python、R、Julia、Go、Javascript 等编程语言。




数据分析/数据可视化






  • go-graph








    Go语言图形库;





  • SVGo








    Go语言的SV


    G生成库;





  • RF








    Go语言的随机森林库;





Haskell









通用机器学习









  • haskell-ml





    – Haskell


    语言实现的各种深度学习算法










  • HLearn








    根据代数结构解释其深度模型的库;





  • hnn





    – Haskell


    语言的神经网络库;





  • hopfield-networks








    Haskell中用于无监督学习的


    Hopfield


    网络;





  • caffegraph








    一种用于深度神经网络的领域特定语言(DSL);





  • LambdaNet





    – Haskell


    中的可配置的神经网络。







Java









自然语言处理









  • Cortical.io








    像人脑一样快速、精确处理复杂的NLP(自然语言处理)操作(如消歧、分类、流文本过滤等操作)的Retina API;





  • CoreNLP








    斯坦福大学的CoreNLP提供的一系列的自然语言处理工具,该工具可以根据输入原始英语文本,给出单词的基本形式;





  • Stanford Parser











    种自然语言分析器,可以分析语句的语法结构;





  • Stanford POS Tagger








    一个词性分类器


    (POS Tagger


    );





  • Stanford Name Entity Recognizer








    Stanford NER是一个


    Java实现的名称识别器;





  • Stanford Word Segmenter








    分词器,很多NLP工作中都要用到的标准预处理步骤;





  • Tregex, Tsurgeon and Semgrex





    – T


    regex


    基于树关系以及节点匹配的正则表达


    式,用于在树状数据结构中进行模式匹配(名字是“tree regular expressions”的缩写)










  • Stanford Phrasal:



    一个基于短语的翻译系统





  • Stanford English Tokenizer








    Stanford Phrasal


    用Java写成的最新的基于统计短语的机器翻译系统;





  • Stanford Tokens Regex








    一个分解器,可以将文本大致分成一系列对应于“词”的符号;





  • Stanford Temporal Tagger










    SUTime是一个用于识别并标准化时间表达式的库;





  • Stanford SPIED








    在种子集上使用模式,以迭代方式从无标签文本中进行学习实体;





  • Stanford Topic Modeling Toolbox








    为社会科学家及其他希望分析数据集的人员提供的主题建模工具;





  • Twitter Text Java








    Java实现的推特文本处理库;





  • MALLET










    基于Java的统计自然语言处理、文档分类、聚类、主题建模、信息提取以及其他机器学习的文本应用包;





  • OpenNLP








    基于机器学习的自然语言文本处理工具包;





  • LingPipe








    一个使用计算机语言学文本处理的工具包;





  • ClearTK








    在Java中


    ClearTK


    为开发统计语言处理组件提供了一个框架,该框架是基于


    Apache UIMA








  • Apache cTAKES





    – Apache cTAKES


    是一个开源自然语言处理系统,用于从临床电子病历的自由文本中提取信息;





  • ClearNLP





    – ClearNLP


    工程为自然语言处理提供了软件和资源提供了。该项目最早在计算机愈合和教育研究中心启动,目前由


    Emory


    大学的语言和信息研究中心继续开发。该项目遵循


    Apache 2




    license











通用机器学习









  • aerosolve








    是由Airbnb设计的定价建议系统的机器学习库;





  • Datumbox








    应对机器学习和统计应用快速发展的机器学习框架;





  • ELKI








    用于数据挖掘的Java工具包


    (


    无监督:聚类、异常检测等等


    )








  • Encog








    一种先进的神经网络和机器学习框架。


    Encog


    包含用于创建各类网络的类,同时也支持为神经网络规范和处理数据的类。


    它的训练采用多线程弹性传播。它也能使用GPU加快处理时间。提供了图形化界面来帮助建模和训练神经网络。





  • EvA2








    包含遗传算法、差分进化、协方差自适应进化策略等等的进化算法框架;





  • FlinkML in Apache Flink





    – Flink


    中的分布式机器学习库;





  • H2O








    深度学习引擎,支持在Hadoop、Spark 或者通过R、Python、Scala 、


    REST/JSONML


    的APIs连到的笔记本上进行分布式学习;





  • htm.java








    采用


    Numenta




    Cortical


    学习算法的通用机器学习库 ;





  • java-deeplearning





    – Java





    Clojure





    Scala


    的分布式深度学习平台;





  • JAVA-ML








    包含所有


    Java


    算法的通用接口的通用深度学习库;





  • JSAT








    用于分类、回归、聚类的机器学习算法集合;





  • Mahout








    分布式的机器学习库;





  • Meka








    MEKA提供了一个面向多标签学习和评价方法的开源实现(扩展成Weka);





  • MLlib in Apache Spark








    Spark中的分布式机器学习程序库;





  • Neuroph





    – Neuroph


    是轻量级的Java神经网络框架;





  • ORYX








    采用


    Apache Spark





    Apache Kafka





    Lambda


    结构框架,专门用于实时大规模机器学习;





  • Samoa








    SAMOA


    是一个包含用于分布式机器学习数据流的框架,同时为数据流流入不同的流处理平台提供了接口;





  • RankLib





    – RankLib


    是一个排序学习算法库;





  • rapaio








    Java中用于统计、数据挖掘和机器学习的工具箱;





  • RapidMiner





    – RapidMiner integration into Java code





  • Stanford Classifier








    斯坦福大学分类器是一种机器学习工具,它可以将数据项归置不同的类别中;





  • SmileMiner








    统计机器智能与学习引擎;





  • SystemML








    灵活、可扩展的机器学习语言;





  • WalnutiQ








    人脑部分面向对象模型;





  • Weka










    Weka是数据挖掘方面的机器学习算法集











语音识别









  • CMU Sphinx





    – CMU Sphinx


    是基于Java 语音识别库,用于纯语音识别开源工具包。








数据分析/数据可视化












深度学习











J

avascript








自然语言处理







  • Twitter-text






    – Twitter文本处理库中使用JavaScript的实现;






  • NLP.js







    使用JavaScript和CoffeeScript的


    NLP


    实用工具;






  • natural







    用于节点的通用自然语言工具;






  • Knwl.js







    JS中的自然语言处理器;






  • Retext






    -用于分析和处理自然语言的可扩展系统;






  • TextProcessing






    -情感分析,词干和词形还原,部分词性标注和组块,短语提取和命名实体识别;






  • NLP Compromise






    – 浏览器中的自然语言处理。







数据分析/数据可视化








通用机器学习







  • Convnet.js






    – ConvNetJS是一个JavaScript库,用于训练深度学习模型[深度学习];






  • Clusterfck






    – 为Node.js和浏览器,用Javascript实现的凝聚层次聚类;






  • Clustering.js







    Javascript为Node.js和浏览器实现的聚类算法;






  • Decision Trees






    -使用ID3算法实现NodeJS决策树;






  • figue






    – K-均值、模糊C均值和凝聚聚类;






  • Node-fann






    -Node.js绑定的快速人工神经网络库(


    Fast Artificial Neural Network Library





    FANN


    );






  • Kmeans.js






    – K-均值算法用JavaScript的简单实现,用于Node.js和浏览器;






  • LDA.js







    Node.js的LDA主题建模;






  • Learning.js







    用Javascript实现逻辑回归/


    c4.5


    决策树;






  • Machine Learning









    Node.js


    的机器学习库;






  • Node-SVM









    Node.js


    的支持向量机;






  • Brain







    JavaScript中的神经网络[已弃用];






  • Bayesian-Bandit









    Node


    和浏览器的贝叶斯实现;






  • Synaptic







    用于Node.js和浏览器的无架构神经网络库;






  • kNear







    JavaScript实现的k个最近邻算法,用于监督学习;






  • NeuralN







    Node.js的C++神经网络库,其优点是有大量的数据集和多线程训练;






  • kalman







    Javascript的卡尔曼滤波器;






  • shaman







    Node.js库,同时支持简单和多元的线性回归;






  • ml.js







    用于Node.js和浏览器的机器学习和数值分析工具;






  • Pavlov.js







    利用马尔可夫决策过程强化学习;






  • MXNet








    轻量级、便携式、灵活的分布式/深度学习系统,可对动态的、突变数据流调度部署,同时也支持Python、R、Julia、Go、Javascript 等编程语言。









其它







  • sylvester







    用于JavaScript的向量和矩阵数学;






  • simple-statistics







    描述,回归和推断统计的JavaScript实现;用文字实现的JavaScript,没有依赖性,能在所有现代浏览器(包括IE)以及在node.js中工作;






  • regression-js







    JavaScript库,包含小二乘法拟合方法的集合,用于寻找数据集的趋势;






  • Lyric







    线性回归库;






  • GreatCircle







    计算大圆距的库。







Julia







通用机器学习







  • MachineLearning









    Julia


    机器学习库;






  • MLBase







    一组支持机器学习算法的发展的函数;






  • 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工具;






  • Mamba









    Julia


    中马尔可夫链蒙特卡罗(MCMC)的贝叶斯分析;






  • GLM









    Julia


    的广义线性模型。






  • Online Learning








  • GLMNet







    GMLNet的Julia包装版,适合套索/弹性网模型;






  • Clustering







    集群数据的基本功能:K-均值,DP-均值等;






  • SVM









    Julia


    适用的


    SVM









  • Kernal Density









    Julia


    的核密度估计量;






  • Dimensionality Reduction







    降维方法;






  • NMF







    非负矩阵分解的


    Julia


    包;






  • ANN









    Julia


    人工神经网络;






  • Mocha







    受Caffe启发,


    Julia


    的深度学习框架;






  • XGBoost









    Julia


    中的


    eXtreme Gradient Boosting












  • ManifoldLearning







    用于流形学习和非线性降维的


    Julia


    组件;






  • MXNet








    轻量级、便携式、灵活的分布式/深度学习系统,可对动态的、突变数据流调度部署,同时也支持Python、R、Julia、Go、Javascript 等编程语言。







  • Merlin









    Julia


    灵活的深度学习框架。







自然语言处理








数据分析/数据可视化








其他项/展示