2011-04-28 41 views
22

我正在寻找社区检测算法的实现,如Girvan-Newman算法(2002)。我访问过这个领域的几位研究人员的网站(Newman,Santo等),但无法找到任何代码。我想象那里有人发布了这些算法的实现(甚至可能是一个工具包?),但我似乎无法找到它。在图中是否有社区检测算法的实现?

+0

请参见:[matlab-networks-toolbox](https://github.com/ivan-brugere/matlab-networks-toolbox) – kenorb 2015-05-13 10:14:13

回答

36

社区检测算法有时是库的一部分(如用于java的JUNG)或工具(请参阅Gephi)。当作者发布一种新方法时,他们有时会提供他们的代码。例如,LouvainInfomap方法。

备注:Girvan-Newman算法有时仍在使用,但它大部分被更快和更准确的方法取代。为了很好地概述这个话题,我推荐Community detection algorithms: a comparative analysis或更长的Community detection in graphs(103页)。

24

你应该看看igraph library

  • 7个社区检测算法(包括以上mentionned):
    • Edgebetweenness(格文 - 纽曼基于链路中心地位的方法),
    • Walkrap(Pons-Latapy random walk-based approach),
    • 主要特征向量(Newman's spectral approach),
    • 快速贪婪(Clauset et。人模块化优化),
    • 标签传播(Raghavan等人),
    • 鲁汶(布隆德尔等人,模块化优化),
    • Spinglass(雷查德-Bornholdt,模块化优化),
    • InfoMap(Rosvall -Bergstrom,基于压缩的方法)。
  • 其他相关功能:处理模块,处理分层结构等
  • 可在R,C和Python
  • 开源

为了我个人认为,最完整的工具社区检测。 有关详细信息,还要检查:What are the differences between community detection algorithms in igraph?

+0

现在也可以在Mathematica中获得:https://github.com/szhorvat/IGraphM涵盖所有社区检测功能。 – Szabolcs 2015-10-22 21:44:42

0

我们最近实施our algorithm,这是基于恒波茨模型,快速鲁汶优化,并为加权,并签署网络InfoMap可靠的地图式。 Here是开源的java项目+一个可执行的jar。

相关问题