以前的想法是使用 Google 来寻找「顶级 R 机器学习包」的列表,然后试着从列表上抓取所有包的名称,将它们结合起来,并使用该列表作为起点。但是抛开工程任务来说,当前可用的列表质量相对较差,不能满足我们的需求。它们过时了,没有明确的说明方法,并且往往是极其主观的。 确定客观指标 一个好的排名需要一个对于「最佳(best)」的定义,这需要用良好的指标来搭建。我们将「最佳」定义为「最流行」。这并不一定意味着这个包是广受欢迎的(由于糟糕的 API,用户可能经常会搜索 Stack Overflow) 我们为我们的排名选取了 3 个因素: 下载:来自于 CRAN 镜像的下载量 Github:包的主存储库页面上星星数量。 Stack Overflow: 包含程序包的名称并以 'R' 标记的问题的数量。 CRAN 下载 有一些 CRAN 的镜像,而我们使用的是 R-Studio 镜像,因为它有一个便捷的 API。RStudio 一定是 R 中使用最广泛的 IDE,但却并非是唯一的。如果我们从其他 CRAN 的镜像统计下载量,我们的排名可能会更好(但并不会有显著变化)。 GitHub 最初,我们通过在 Github 的 search API 上查询包的名字来寻找包的 Github 页面,可能会使用「language:R」,但这么做是不可靠的。有时候很难选择正确的 Github 库,而且不是所有的 R 包都是用 R 语言来实现的(在该搜索 API 中,「language:R」参数似乎指的是该存储库写入所使用的最流行的语言) 相反,我们返回 CRAN 来寻找这些 URL。每个包都有一个官方的 CRAN 页面,其中包括了一些有用的信息,比如源代码链接。这就是我们得到的包的 Github 存储库的位置。 在这之后,使用 API 就可以容易地得到 Github 的星星数。 Stack Overflow 从 Stack Overflow 获取有用的结果需要技巧。一些 R 包的名称,比如 tree 和 earth,存在着明显的困难:Stack Overflow 的结果可能不会被筛选到 R 包的结果当中,所以我们首先在查询中添加一个 「r」 字符串,这非常有帮助。 一个好的(最优的?)策略是在问题主题中查询包的名字,然后添加一个 『r』标签(这与添加 『r』 字符串不同) 建立排名 我们简单地将包按照 3 个指标中的每一个来排名,并取其平均值。该方法没什么特别的地方。 杂注 所有的数据都是在 2017 年 1 月 19 日下载的。CRAN 的下载量则是统计了过去 365 天的数据:从 2016 年 1 月 19 日 到 2017 年 1 月 19 日。 数据科学领域最顶级的 R 包? 一开始,这个项目是要将「数据科学」领域中所有顶级的包进行排名,但我们很快发现这个范围太大。 数据科学家做了很多不同的事情。要帮助一个数据科学家,你要将几乎所有的 R 包进行分类。那么,我们应该包含字符串操作包吗?包是如何从数据库中读取数据的呢? 也许有一天,会有一个更长的项目,它会更多地使用 「Data Science」 来为「数据科学」工作得出一个顶级 R 包的排名。 资源: 源代码请查看 The Data Incubator (https://www.thedataincubator.com/) 的 Github (地址:https://github.com/thedataincubator/data-science-blogs/)。如果有兴趣学习更多,请参考: 1.Data science corporate training (地址:https://www.thedataincubator.com/training.html) 2. Free eight-week fellowship for masters and PhDs looking to enter industry (地址:https://www.thedataincubator.com/fellowship.html) 3. Hiring Data Scientists (地址:https://www.thedataincubator.com/hiring.html) 原文链接: ©本文为机器之心编译,atv,转载请联系本公众号获得授权。 ?------------------------------------------------ 加入机器之心(全职记者/实习生):[email protected] 投稿或寻求报道:[email protected] 广告&商务合作:[email protected] (责任编辑:本港台直播) |