史上最全的机器学习资料(上) 转

转自:http://www.afenxi.com/post/18593

摘要: 机器学习牵涉的编程语言十分之广,包括了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

自然语言处理

  • Clojure-openNLP – Clojure中自然语言处理的工具包(openNLP);
  • Infections-clj – Clojure和Clojure中类似于Rails的inflection库。

通用机器学习

  • 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语言的SVG生成库;
  • 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 – Tregex基于树关系以及节点匹配的正则表达式,用于在树状数据结构中进行模式匹配(名字是“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 语音识别库,用于纯语音识别开源工具包。

数据分析/数据可视化

  • Flink – Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台;
  • Hadoop – 大数据分析平台;
  • Spark – Spark是一个快速通用的大规模数据处理引擎;
  • Storm – Storm是一个分布式实时计算系统;
  • Impala – 为Hadoop实现实时查询
  • DataMelt – 用于数字计算、统计、符号计算、数据分析和数据可视化的数学软件;
  • Dr. Michael Thomas Flanagan’s Java Scientific Library

深度学习

  • Deeplearning4j – 采用并行GPU的商用可扩展深度学习库。

数 Javascript



自然语言处理

  • 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灵活的深度学习框架。

自然语言处理

数据分析/数据可视化

其他项/展示

编译自:https://github.com/josephmisiti/awesome-machine-learning

来源:云栖社区

译者:刘崇鑫   校对:王殿进

时间: 2024-10-13 06:55:49

史上最全的机器学习资料(上) 转的相关文章

可能是史上最全的机器学习和Python(包括数学)速查表

新手学习机器学习很难,就是收集资料也很费劲.所幸Robbie Allen从不同来源收集了目前最全的有关机器学习.Python和相关数学知识的速查表大全.强烈建议收藏! 机器学习有很多方面. 当我开始刷新这个主题时,我遇到了各种“速查表”,仅仅列出了需要知道的给定主题的所有要点. 最后,我收集了与机器学习相关的速查表.有些我经常参考,认为其他人也可能从中受益.因此, 这篇文章把我在网上发现的很好的27个速查表分享出来,以供大家参考. 机器学习(Machine Learning) 有不少有用的流程图

史上最全最完整的IOS 游戏开发 PDF电子书定制下载

<iOS 5游戏开发>作者:(新西兰)James·Sugrue著 页数:191 出版社:北京市:人民邮电出版社 出版日期:2012.08 简介:<iOS5游戏开发>是一本iOS5游戏开发的基础入门书.全书使用通俗易懂的简单实例,带领读者经历构建经典动作游戏的整个周期.读者在本书的阅读过程中,将经历从开发概念.规划设计一直到编写实际代码的全过过程.本书的每一章,都将演示游戏创建过程中的一个逻辑步骤,读者将在其中学习如何创建Sprite,用触摸屏.重力感应器和屏幕游戏棒控制玩家角色等-

史上最全“大数据”学习资源整理

史上最全"大数据"学习资源整理 当前,整个互联网正在从IT时代向DT时代演进,大数据技术也正在助力企业和公众敲开DT世界大门.当今"大数据"一词的重点其实已经不仅在于数据规模的定义,它更代表着信息技术发展进入了一个新的时代,代表着爆炸性的数据信息给传统的计算技术和信息技术带来的技术挑战和困难,代表着大数据处理所需的新的技术和方法,也代表着大数据分析和应用所带来的新发明.新服务和新的发展机遇. 为了帮助大家更好深入了解大数据,云栖社区组织翻译了GitHub Aweso

【Tips】史上最全H1B问题合辑——保持H1B身份终级篇

[Tips]史上最全H1B问题合辑——保持H1B身份终级篇 2015-04-10留学小助手留学小助手 留学小助手 微信号 liuxue_xiaozhushou 功能介绍 提供最真实全面的留学干货,帮您掌握最新留学资讯. 成功申请了H1B后可不是就万事大吉了哦,如何保持H1B身份也是需要掌握的秘籍.本次的终极篇教你如何保持H1B身份.搞定H1B转换.以及未来的职业移民申请该如何操作. 保持H1B身份终级篇 1 保持H1B身份 1.问:在H1B达到六年期限以后,如何才能申请继续延期? 答: H1B首

史上最全的开发和设计资源大全

史上最全的开发和设计资源大全2016-08-09 技术最前线链接:blog.jobbole.com/104313GitHub 上的 Awesome 系列(资源大全系列),是一个汇总了优秀工具资源的大集合,并由 GitHub 社区用户持续维护和更新.初始的版本都是英文,伯乐在线组织整理了热门资源大全的中文版.目前,中文版的资源列表在 GitHub 总计已经有超过 10,000 star 和 数千 fork .以下是各个开发和设计资源的详细介绍. Java 资源大全 Java资源大全中文版,包括:构

史上最全java架构师技能图谱(下)

"java架构史上最全技能图谱分为上下两篇,这是java架构史上最全图谱下篇,包含:大数据以及性能.设计模式.UML.中间件.分布式集群.负载均衡.通讯协议.架构设计等技术图谱等章节.如果需要上篇内容:数结构算法.java进阶.web开发.框架与工具四大篇章技能图谱,请查看java架构史上最全图谱上篇(历史文章查看).本文作者,陈睿 BAT优知学院创始人,一线大厂资深CTO,免费提供系统的互联网技术进阶干货资料和系列课程,以及定期的线下项目实战. 架构师进阶六大要求程序设计要求WEB开发要求架构

.Net魔法堂:史上最全的ActiveX开发教程——ActiveX与JS间交互篇

一.前言 经过上几篇的学习,现在我们已经掌握了ActiveX的整个开发过程,但要发挥ActiveX的真正威力,必须依靠JS.下面一起来学习吧! 二.JS调用ActiveX方法 只需在UserControl子类中(即自定义的ActiveX控件中),编写公共方法即可. C# [Guid("0203DABD-51B8-4E8E-A1EB-156950EE1668")] public partial class Uploader : UserControl, IObjectSafety { p

史上最全最常用的正则表达式-(基本够用值得收藏)

一.校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 8 正数.负数.和小数:^(\-|\+)?\d+(\.\d+)?$ 9 有两位小数的正实数:^[0-9]

[No00004F]史上最全Vim快捷键键位图(入门到进阶)

史上最全Vim快捷键键位重磅来袭!!学习Linux的朋友看过来啦,你是不是觉得Linux编辑器Vim操作复杂,步骤繁琐呢?Linux工程师是不是想大幅度提升自己的工作效率呢? 经典版        下面这个键位图应该是大家最常看见的经典版了. 对应的简体中文版. 其实经典版是一系列的入门教程键位图的组合结果,下面是不同编辑模式下的键位图. 1 2 3 4 5 6 7 入门版        基本操作的入门版.进阶版        增强版        下图是一个更新时间较新的现代版,含有的信息也更