fast_label_propagation_communities#

fast_label_propagation_communities(G, *, weight=None, seed=None)[source]#

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

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

算法操作如下。首先,每个节点的社区标签被设置为唯一标签。然后,算法反复更新节点的标签为其邻域中最频繁的标签。在平局情况下,从最频繁的标签中随机选择一个标签。

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

Parameters:
GGraph, DiGraph, MultiGraph, 或 MultiDiGraph

任何 NetworkX 图。

weight字符串, 或 None (默认)

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

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

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

Returns:
communitiesiterable

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

Notes

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

References

[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