开源复杂 络分析软件中 团发现算法总结

复杂 络研究中的一个重要部分就是 团发现(Community Detection)算法的研究,密歇根大学物理学系教授Mark Newman就主要在 团发现方面做出了很多贡献。今天简单总结一下几个开源复杂 络分析软件中的 团发现算法:

首先是NetworkX,这个软件非常好用,功能强大,文档清晰。我也写过多篇日志介绍。遗憾的是NetworkX的 团发现算法很简单,按照这里的介绍,其主要实现了下面这个算法:

G. Palla, I. Derényi, I. Farkas, and T. Vicsek, “Uncovering the overlapping community structure of complex networks in nature and society,” Nature, vol. 435, pp. 814-818, 2005.

而且在运行算法的时候需要指定需要输出的 团的最小规模,如:

这样c中包含了所有 团大小大于等于4的所有 团。

其次是Gephi,这个软件在很多方面也很强大,例如复杂 络可视化等。但是 团发现算法也比较单一,打开其界面后,点击右侧的“模块化”,就可以使用下面的算法进行分析:

V. D. Blondel, J. Guillaume, R. Lambiotte, and E. Lefebvre, “Fast unfolding of communities in large networks,” Journal of Statistical Mechanics: Theory and Experiment, vol. 2008, p. P10008, 2008.

Gephi支持相应的模块度(Modularity)的计算,也支持 团划分结果的输出。

上面两个软件的功能都比较单一,经过查阅文献,我们发现有些论文用到了igraph这个软件包,这个包支持R,C语言和Python,如果之前使用NetworkX,可以无缝地和这个软件整合起来,igraph实现了较多的 团划分算法,可以参考其Reference Manual查找。例如下列算法其都实现了:

M. E. Newman and M. Girvan, “Finding and evaluating community structure in networks,” Physical review E, vol. 69, p. 026113, 2004.

A. Clauset, M. E. Newman and C. Moore, “Finding community structure in very large networks,” Physical review E, vol. 70, p. 066111, 2004.

U. N. Raghavan, R. Albert and S. Kumara, “Near linear time algorithm to detect community structures in large-scale networks,” Physical Review E, vol. 76, p. 036106, 2007.

总体上来讲,igraph实现的Community Detection算法最多,而且可以通过Python和NetworkX无缝衔接,至于NetworkX和Gephi,我之前有一篇日志,介绍了两者的 络数据可以如何转化。就总结这么多。最后附上一张我在论文里用Gephi做的图:

开源复杂 络分析软件中 团发现算法总结

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览33847 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2014年2月11日
下一篇 2014年2月12日

相关推荐