cdlib.algorithms.louvain¶
- cdlib.algorithms.louvain(g_original: object, partition: NodeClustering | None = None, weight: str = 'weight', resolution: float = 1.0, randomize: int | None = None) NodeClustering¶
Louvain 最大化每个社区的模块化分数。 该算法在两个基本阶段优化模块化: (1) 节点的局部移动; (2) 网络的聚合。 在局部移动阶段,单个节点被移动到能够使质量函数最大增加的社区。 在聚合阶段,基于局部移动阶段获得的分区创建一个聚合网络。 该分区中的每个社区成为聚合网络中的一个节点。这两个阶段重复进行,直到质量函数无法进一步增加。
支持的图表类型
无向
有向
加权
是的
否
是的
- Parameters:
g_original – 一个 networkx/igraph 对象
partition – NodeClustering 对象,可选 算法将开始使用此节点分区
weight – str, 可选 图中用作权重的键。默认为“weight”
resolution – double, 可选 将改变社区的大小,默认为1。
randomize – int, RandomState 实例或 None, 可选 (默认=None).
- Returns:
节点聚类对象
- Example:
>>> from cdlib import algorithms >>> import networkx as nx >>> G = nx.karate_club_graph() >>> coms = algorithms.louvain(G, weight='weight', resolution=1.)
- References:
Blondel, Vincent D., 等人. 大型网络中社区的快速展开. 统计力学杂志:理论与实验 2008.10 (2008): P10008.