fast_label_propagation_communities#

fast_label_propagation_communities(G, *, weight=None, seed=None)[源代码]#

返回由快速标签传播算法检测到的图 G 中的社区。

快速标签传播算法在 [1] 中有描述。该算法是概率性的,找到的社区在不同执行中可能会有所不同。

该算法操作如下。首先,将每个节点的社区标签设置为一个唯一的标签。然后算法重复地将节点的标签更新为其邻域中最常见的标签。如果出现并列,则从最常见的标签中随机选择一个。

算法维护一个需要处理的节点队列。最初,所有节点以随机顺序添加到队列中。然后节点被逐个从队列中移除并处理。如果一个节点更新了其标签,其所有标签不同的邻居(如果尚未在队列中)都会被添加到队列中。当队列为空时,算法停止。

参数
GGraph, DiGraph, MultiGraph 或 MultiDiGraph

任何 NetworkX 图。

weightstring 或 None(默认)

表示边非负权重的边属性。如果为 None,则假定每条边的权重为一。边的权重用于确定一个标签在节点邻居中出现的频率(权重为 w 的边等价于 w 条无权重边)。

seedinteger, random_state 或 None(默认)

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

返回
communitiesiterable

以节点集合形式给出的社区可迭代对象。

注意

对于有向图,边方向被忽略。边的权重必须是非负数。

参考文献

[1]

Vincent A. Traag & Lovro Šubelj. “Large network community detection by fast label propagation.” Scientific Reports 13 (2023): 2701. https://doi.org/10.1038/s41598-023-29610-z