本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

【图】资源 | 最流行的机器学习R语言软件包是哪些?

时间:2017-02-05 16:40来源:668论坛 作者:118开奖 点击:
参与:王宇欣、杜夏德 The Data Incubator 中,有着最新的数据科学(data science)课程。其中大部分的课程都是基于企业和政府合作伙伴的需求而设立的。现在他们希望开发一更偏向数据为

参与:王宇欣、杜夏德

The Data Incubator 中,有着最新的数据科学(data science)课程。其中大部分的课程都是基于企业和政府合作伙伴的需求而设立的。现在他们希望开发一更偏向数据为驱动的方式,以了解应该为数据科学企业的培训(data science corporate training,以及享受其提供的免费助学金的有意愿进入业界数据科学领域的硕博士生们教授什么样的内容。结果如下。

排名

什么是最流行的机器学习包(ML packages)?让我们来看一下基于包下载量(package downloads)和社交网站活跃度的排名。

【图】资源 | 最流行的机器学习R语言软件包是哪些?

注:OneR: 1 (SO); mlr: 2 (Github); ranger: 4 (Github); SuperLearner: 5 (Github)

该排名基于 CRAN ( The Comprehensive R Archive Network (https://cran.r-project.org/) ) 下载量和 Stack Overflow 活跃性的平均排名(完整排名 [CSV] (https://github.com/thedataincubator/data-science-blogs/blob/master/ranking.csv)))。

其中 CRAN 的下载量是过去一年的数据。Stack Overflow 则是根据基于问题正文中下载包的名称并以 『R』进行标记的结果数进行排名。

GitHub 的排名则是由存储库中的星星数而来。有关方法的详细信息,请参阅下文

CARET 排名第一,多个神经网络排名靠前

caret 排名第一也许并不奇怪。它是一个用于创建机器学习工作流的通用软件包,能很好地与一些算法特定的软件包(排名靠后)整合在一起。

这些包括了 e1071 ( 用于支持向量机,SVMs), rpart (trees), glmnet ( 正则化回归,regularized regressions), 也许还有 R,神经网络 (nnet)。有关软件包的详细信息如下

排名说明了 R 软件包社区的碎片化程度。一些顶级的软件包,比如 rpart 和 tree,部署了相同的算法,这与 Python 的 scikit-learn 的一致性和宽度形成对比。

但是,如果你喜欢 R 的数据操作能力(就像在 tidyverse 中),那么你就可以使用这些软件包做一些功能强大的模型,而不用切换到 python。此外,随着 modelr (https://github.com/hadley/modelr) 中添加了更多的功能,我们也许很快能在此列表中看到 tidy tool。

包的细节

caret 是一个用于创建机器学习工作流的一般包,并且它已经处于这个排名的首位置。接着的是实现特定机器学习算法的几个包:随机森林(Random Forests)(randomForest), 支撑向量机(Support Vector Machines)(e1071), 分类和回归树(Classification and Regression Trees)(rpart), 和 正则化回归模型(regularized regression models)(glmnet).

nnet 实现了神经网络,而 tree 包同样实现了树的功能。party 用于二叉树的递归分割和可视化,arules 则用于关联挖掘。支持向量机(SVMs)和其他的内核方法则部署在 kernlab 中。h2o 包用于可扩展的机器学习,而且是更大的 H2O 项目的一部分。ROCR 用于模型评估,包括 ROC 曲线(接收者操作特征曲线,receiver operating characteristic curve),gbm 实现梯度推进。更多的分割算法(partitioning algorithms)可以使用 RWeka 进行访问,而 rattle 是数据挖掘中的 R 的一个图形用户界面(GUI)。

一些包则只在 Github 中发挥强大功能: mlr 和 SuperLearner 是另外两个元包(meta-package),为 caret 提供类似的符号插入的功能,ranger 提供了随机森林(random forests)的 C++ 实现。

最后,OneR 在 Stack Overflow 中排名第一,但是 SO API 经常将其自动修正为「one」,所以结果并不可信。

方法

接下来,我们描述一下这种排名所使用的方法。

步骤 1: 获得 机器学习包的详尽列表

一开始,我们设想我们的排名综合考虑了包下载量、Stack Overflow 和 Github 活跃度。我们知道能为我们提供这些指标的 API 已经存在了

然而,开奖,获得机器学习的所有 R 包的初始列表是一件更加艰巨的任务。我们需要一份详尽客观的并且是最新的一份列表。一份不好的初始化列表将会严重影响我们的排名。

寻求帮助。一个朋友把一篇文章「CRAN 任务视图:机器学习和统计学习 (CRAN Task View: Machine Learning & Statistical Learning)」介绍给我,该文章底部有一份非常不错的列表,并且很容易入手。

这样做的好处是包列表的来源非常具有权威性(CRAN 是官方 R 包存储库)并且它会经常更新(最近的更新:2017 年 1 月 6 日)。感谢作者,Torsten Hothorn 通过邮件提供的帮助。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容