cdlib.algorithms.leiden¶
- cdlib.algorithms.leiden(g_original: object, initial_membership: list | None = None, weights: list | None = None) NodeClustering ¶
The Leiden algorithm is an improvement of the Louvain algorithm. The Leiden algorithm consists of three phases: (1) local moving of nodes, (2) refinement of the partition (3) aggregation of the network based on the refined partition, using the non-refined partition to create an initial partition for the aggregate network.
Supported Graph Types
Undirected
Directed
Weighted
Yes
No
Yes
- Parameters:
g_original – a networkx/igraph object
initial_membership – list of int Initial membership for the partition. If
None
then defaults to a singleton partition. Deafault Noneweights – list of double, or edge attribute Weights of edges. Can be either an iterable or an edge attribute. Deafault None
- Returns:
NodeClustering object
- Example:
>>> from cdlib import algorithms >>> import networkx as nx >>> G = nx.karate_club_graph() >>> coms = algorithms.leiden(G)
- References:
Traag, Vincent, Ludo Waltman, and Nees Jan van Eck. From Louvain to Leiden: guaranteeing well-connected communities. arXiv preprint arXiv:1810.08473 (2018).
Note
Reference implementation: https://github.com/vtraag/leidenalg