跳到内容

寻找能够最小化随机游走轨迹的预期描述长度的社群结构。如果图是有向图,则会考虑边的方向。

用法

cluster_infomap(
  graph,
  e.weights = NULL,
  v.weights = NULL,
  nb.trials = 10,
  modularity = TRUE
)

参数

graph

输入图。边的方向将被考虑在内。

e.weights

如果不是 NULL,则为边的权重数值向量。长度必须与图中边的数量匹配。默认情况下,“weight”边属性用作权重。如果不存在,则所有边都被认为具有相同的权重。较大的边权重对应于更强的连接。

v.weights

如果不是 NULL,则为顶点的权重数值向量。长度必须与图中顶点的数量匹配。默认情况下,“weight”顶点属性用作权重。如果不存在,则所有顶点都被认为具有相同的权重。较大的顶点权重意味着随机冲浪者跳到该顶点的概率更大。

nb.trials

尝试划分网络的次数(可以是任何等于或大于 1 的整数值)。

modularity

逻辑标量,用于计算检测到的社群结构的模块化分数。

cluster_infomap() 返回一个 communities() 对象,请参阅 communities() 手册页面了解详细信息。

详细信息

请参阅下面参考文献中关于此方法的详细信息。

参考文献

原始论文:M. Rosvall 和 C. T. Bergstrom, Maps of information flow reveal community structure in complex networks, PNAS 105, 1118 (2008) doi:10.1073/pnas.0706851105 , https://arxiv.org/abs/0707.0609

更详细的论文:M. Rosvall, D. Axelsson, 和 C. T. Bergstrom, The map equation, Eur. Phys. J. Special Topics 178, 13 (2009). doi:10.1140/epjst/e2010-01179-1 , https://arxiv.org/abs/0906.1405.

作者

Martin Rosvall 编写了原始 C++ 代码。 Emmanuel Navarro 将其移植为更像 igraph 的代码。 R 接口和一些修饰由 Gabor Csardi csardi.gabor@gmail.com 完成。

示例


## Zachary's karate club
g <- make_graph("Zachary")

imc <- cluster_infomap(g)
membership(imc)
#>  [1] 1 1 1 1 2 2 2 1 3 1 2 1 1 1 3 3 2 1 3 1 3 1 3 3 3 3 3 3 3 3 3 3 3 3
communities(imc)
#> $`1`
#>  [1]  1  2  3  4  8 10 12 13 14 18 20 22
#> 
#> $`2`
#> [1]  5  6  7 11 17
#> 
#> $`3`
#>  [1]  9 15 16 19 21 23 24 25 26 27 28 29 30 31 32 33 34
#>