louvain_partitions#

louvain_partitions(G, weight='weight', resolution=1, threshold=1e-07, seed=None)[source]#

生成Louvain社区检测算法每一层的分区

Louvain社区检测算法是一种简单的方法,用于提取网络的社区结构。这是一种基于模块度优化的启发式方法。[1]

在每一层(算法的每一步)的分区形成一个社区的树状图。树状图是一个表示树的图,每一层代表图G的一个分区。顶层包含最小的社区,随着向树的底部遍历,社区变得更大,整体模块度增加,使得分区更好。

每一层是通过执行Louvain社区检测算法的两个阶段生成的。

在输入图中要注意自环。这些被视为先前缩减的社区——就好像算法已经从中途开始。因此,大的自环边权重代表强社区,在实践中可能难以添加其他节点。如果你的输入图的自环边权重不代表已经缩减的社区,你可能希望在输入该图之前移除自环。

Parameters:
GNetworkX图
weight字符串或None, 可选 (默认=”weight”)

边属性的名称,该属性持有作为权重的数值。如果为None,则每条边的权重为1。

resolution浮点数, 可选 (默认=1)

如果分辨率小于1,算法倾向于较大的社区。大于1则倾向于较小的社区。

threshold浮点数, 可选 (默认=0.0000001)

每一层的模块度增益阈值。如果在算法的两个层之间的模块度增益小于给定的阈值,则算法停止并返回结果社区。

seed整数, random_state, 或 None (默认)

随机数生成状态的指示器。 参见 Randomness

Yields:
列表

一个集合列表(G的分区)。每个集合代表一个社区,包含构成该社区的所有节点。

References

[1]

Blondel, V.D. 等人。大型网络中社区的快速展开。J. Stat. Mech 10008, 1-12(2008)