2012年11月17日星期六

Package Rank v1.1发布,及兵器谱分析


Package Rank v1.1发布,及兵器谱分析

根据统计之都论坛上网友nan.xiao的提点,免去爬虫之累,直接从这个文件把所需数据干净地parse出来,组成包与包之间的depend, import, suggest, enhance四种关系,然后构造链接矩阵,其中depend与import的链接权重为1,suggest与enhance的链接权重为0.5,重新用page rank算法计算了一遍,这次的rank看起来比较成熟了。数据已经更新到主页的查询系统中:http://wentrue.net/。这回很多包都有了权重,包括益辉同学的animation,这下他可以不用骂我了。包的总数量为2576个,其中大于0的有1165个,大于1的有425个。
这个版本下,除了R本身,所有R自带的包也会出现在链接矩阵里,所以现在的英雄榜是这样的:
1  stats  10.0
2  methods  9.2208
3  utils  8.9407
4  MASS  8.8069
5  graphics  8.6897
6  lattice  8.2479
7  survival  7.6583
8  grDevices  7.5612
9  mvtnorm  6.9506
10 tcltk  6.8526
11 nlme  6.6053
12 grid  6.5991
13 splines  6.4603
14 Matrix  6.2502
15 maps  6.2338
16 mapproj  5.8464
17 boot  5.6763
18 rJava  5.6149
19 nnet  5.612
20 rgl  5.582
可以简单分析一下这前二十名的兵器谱排行榜。不出意料的是,R自带的核心包占领了前列的位置,如统计、图形图像方面的功能包,就不多说了。关注一下剩下来的异类,可以看到除了统计与作图这些本行外,R开始在哪些领域被广泛应用:
  • mvtnorm,这还是一个统计方面的包,不多说;
  • Matrix,很欣慰我两次计算中它都上榜了,这是我一直赖以作业的稀疏矩阵包,要把R应用于大数据量的处理,基本很难绕开这个问题。它占据了兵器谱的这个排名至少说明了有很多把R用于大数据量计算的尝试。
  • maps和mapproj是两个地图与地理信息系统方面的包,跟R在作图方面的美名还是能扯上边的。
  • boot是重采样、交叉检验方面的包,自带的。
  • rJava,R与java的接口。R与其它语言的接口有不少,相比于Rcpp(排43),这个的排名要靠前得多,一方面是不需要其它包R也直接支持fortran/c/c++的接口,另方面也说明java的群体与现成工作是多么地无法让人舍弃。
  • nnet,前向神经网络,我曾经的老本行,作为曾经的AI的一个分支,必须要占有一席之地。
  • rgl, OpenGL相关的,归根到底还是作图。
我还关注了一下并行计算方面的排次,我常用的snow包以4.9108的rank排30位,Rmpi以3.5457的值排80位,multicore以3.8591居61位。算是个不错的结果,说明高性能计算也是现在R发展关注的一个焦点。
一个R包的质量有很多方面的因素来决定,Package Rank并不是一个绝对的包的优劣的评判标准,但可作为选择时的一个参考,它度量的是这个包在圈子里被使用或者说被认知的程度。
关于作者
阿稳, 豆瓣, 算法工程师
推荐系统;数据挖掘;算法架构及实现的可扩展性;R环境编程
如果你的问题已经能从我的博客中得到解答,就最好不过了:

没有评论:

发表评论