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