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