louvain_partitions#

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

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

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

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

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

输入图中的自环需要注意。它们被视为先前已缩减的社区——就像过程已在算法中途开始一样。因此,较大的自环边权重代表强社区,在实践中可能难以添加其他节点。如果输入图中自环的边权重不代表已经缩减的社区,则您可能需要在输入该图之前移除自环。

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

用作权重的边属性的名称。如果为 None,则每条边的权重为 1。

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

如果 resolution 小于 1,算法倾向于发现更大的社区。如果大于 1,则倾向于发现更小的社区。

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

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

seed整数、random_state 或 None (默认值)

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

产生:
列表

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

另请参阅

louvain_communities

参考文献

[1]

Blondel, V.D. et al. Fast unfolding of communities in large networks. J. Stat. Mech 10008, 1-12(2008)