[转] http://www.leiphone.com/news/201612/PEyfFyUxtTVLHKx6.html
如今,开源已经成为创新与技术发展的核心。在本文中,雷锋网将介绍 2016 Python 前20大机器学习开源项目。
去年 KDnuggets 评选了前 20 大机器学习开源项目(Python版),今年的评选结果与去年相比,名单中出现了一些新的面孔,有13个新开源项目入围了这个名单。作者 Prasad Pore 将具体介绍这些开源项目,雷锋网编译,未经许可不得转载。
第一名:Scikit-learn
Scikit-learn可以说是一款简单而高效的数据挖掘与分析工具,大家可以免费下载安装,使用它处理各种数据,使用时需引入 NumPy, SciPy, and matplotlib这些第三方开源模块。
提交: 21486 贡献: 736 Github URL: Scikit-learn
第二名:Tensorflow
Tensorflow是由谷歌大脑与谷歌人工智能实验室的科研人员研发而成的,这个系统用于机器学习的研究,可以简单、快速的实现研究人员的想法。前段时间恰逢Tensorflow一周年,雷锋网也做过报道和回顾。
提交: 10466 贡献: 493 Github URL: Tensorflow
第三名:Theano
Theano可以对那些高维数组数学表达式进行定义、优化与评估。
提交: 24108 贡献: 263 Github URL: Theano
第四名:Caffe
Caffe是一款具有表达、加速、模块化思想的深度学习框架,由 Berkeley Vision and Learning Center (BVLC)于社区志愿者共同开发维护。
提交: 3801 贡献: 215 Github URL: Caffe
第五名:Gensim
Gensim是一个免费的Python库,这个库可以实现文本的情感倾向判断,相似文本检索等功能。
提交: 2702 贡献: 145 Github URL: Gensim
第六名:Pylearn2
Pylearn2 也是一个机器学习的开源库,但它是一个基于Theano的库,所以它有一些Theano的特点,你可以使用数学表达式来写Pylearn2插件,Theano会自动对你写的表达式进行优化,按照你的选择(用CPU或GPU)对这些表达式进行编译。
提交: 7100 贡献: 115 Github URL: Pylearn2
第七名:Statsmodels
Statsmodels是一款Python开源工具,可以实现数据探究、统计模型评价、性能测试等功能,扩展性能良好,可对各种类型的数据进行各种处理,例如描述统计、统计测试、绘图、结果统计等等。
提交: 8664 贡献: 108 Github URL: Statsmodels
第八名:Shogun
Shogun是一款机器学习工具,其包含了各种机器学习方法。它可以简单的实现多种数据表示、多种算法的无缝融合。
提交: 15172 贡献: 105 Github URL: Shogun
第九名:Chainer
Chainer是一个基于Python的开源深度学习框架,它可以让你以一种灵活、简单、快速的方式实现多种深度学习模型,包括RNN与各种自编码。
提交: 6298 贡献: 84 Github URL: Chainer
第十名:NuPIC
NuPIC是一个基于Hierarchical Temporal Memory理论的开源项目,目前Hierarchical Temporal Memory这个理论中的部分功能已经实现,并进行了测试与应用,其它部分正在完善中。
提交: 6088 贡献: 76 Github URL: NuPIC
第十一名:Neon
Neon是一款深度学习第三方库,在进行高性能计算时它具有简单易用的特点。
提交: 875 贡献: 47 Github URL: Neon
第十二名:NiLearn
NiLearn主要用于处理医学图像数据,具有简单、快速的特点。它通过调用scikit-learn进行多元统计分析(例如:预测模型、分类、解码、关联分析)。
提交: 5254 贡献: 46 Github URL: NiLearn
第十三名:Orange3
Orange3是一款机器学习与数据可视化开源工具,可以对数据进行各种交互分析。
提交: 6356 贡献: 40 Github URL: Orange3
第十四名:Pymc
Pymc是一个贝叶斯统计模型(包括马尔科夫链)库,具有灵活、扩展性能好的特点。
提交: 2701 贡献: 37 Github URL: Pymc
第十五名:PyBrain:
PyBrain是一个机器学习库,它的目标是让算法的实现变的简单、灵活、高效。同时使得在特定环境下对算法的测试与比较也变的简单、灵活、高效。
提交: 984 贡献: 31 Github URL: PyBrain
第十六名:Fuel
Fuel主要用于算法与输入数据之间的衔接。它将被Blocks and Pylearn2这两个Python库使用。
提交: 1053 贡献: 29 Github URL: Fuel
第十七名: PyMVPA
PyMVPA 适用于大规模的数据集,具有扩展性能好优点,提供多种算法(分类、回归、特征选择、数据导入、数据导出等)接口。
提交: 9258 贡献: 26 Github URL: PyMVPA
第十八名:Annoy
Annoy是一个Python可调用的C++库,主要用来对给定数据进行搜索。它可以生成大量的基于文档的可读数据结构,这种数据结构与内存相对应,从而使数据被共享。
提交: 365 贡献: 24 Github URL: Annoy
第十九名:Deap
Deap是一款新的计算框架,它使得算法实现与数据结构变得简单明了。它采用的是并行处理机制。
提交: 1854 贡献: 21 Github URL: Deap
第二十名:Pattern
Pattern是一款web信息挖掘工具,它集成了各种工具。这些工具可以用来进行数据挖掘、自然语言处理、机器学习、网络分析。
提交: 943 贡献: 20 Github URL: Pattern
如下图所示,PyMVPA的社区贡献率最高,而排名第一的Scikit-learn社区贡献率却很低,究其原因是PyMVPA是还是一个比较新的开源项目,还有一些地方需要完善、修复。而Scikit-learn则是一个相对来说比较成熟的项目,需要修改、完善的地方比较少。
当我们对2015与2016的结果进行对比(下图),我们发现Pattern, PyBrain and Pylearn2这三个项目的贡献人数与提交数均没有变化。贡献的人增加了,提交的次数也才跟着增加,这就是开源社区的神奇所在。这些新增的贡献者与其提交内容导致了新的思想、新的软件的产生。
基于2016年20大机器学习开源项目的贡献人数与提交数,以上是雷锋网(公众号:雷锋网)整理的简单分析。不知道到明年的评选上,又有怎样的开源平台会登上这个榜单呢?