寻找能够最小化随机游走轨迹的预期描述长度的社群结构。如果图是有向图,则会考虑边的方向。
参数
- 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.
参见
其他社群发现方法和 communities()
。
社群检测 as_membership()
, cluster_edge_betweenness()
, cluster_fast_greedy()
, cluster_fluid_communities()
, cluster_label_prop()
, cluster_leading_eigen()
, cluster_leiden()
, cluster_louvain()
, cluster_optimal()
, cluster_spinglass()
, cluster_walktrap()
, compare()
, groups()
, make_clusters()
, membership()
, modularity.igraph()
, plot_dendrogram()
, split_join_distance()
, voronoi_cells()
作者
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
#>