cdlib.algorithms.leiden

cdlib.algorithms.leiden(g_original: object, initial_membership: list | None = None, weights: list | None = None) NodeClustering

Leiden算法是Louvain算法的改进。 Leiden算法包括三个阶段: (1) 节点的局部移动, (2) 分区的细化 (3) 基于细化后的分区进行网络的聚合,使用未细化的分区为聚合网络创建初始分区。

支持的图表类型

无向

有向

加权

是的

是的

Parameters:
  • g_original – 一个 networkx/igraph 对象

  • initial_membership – 整数列表 分区的初始成员资格。如果 None 则默认为单例分区。默认值为 None

  • weights – 双精度列表,或边属性 边的权重。可以是可迭代对象或边属性。默认值为 None

Returns:

节点聚类对象

Example:

>>> from cdlib import algorithms
>>> import networkx as nx
>>> G = nx.karate_club_graph()
>>> coms = algorithms.leiden(G)
References:

Traag, Vincent, Ludo Waltman, 和 Nees Jan van Eck. 从Louvain到Leiden:保证良好连接的社区。 arXiv 预印本 arXiv:1810.08473 (2018).

注意

参考实现:https://github.com/vtraag/leidenalg