leiden(g_original: object, initial_membership: list = None, weights: list = None) → cdlib.classes.node_clustering.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 No Parameters:
- g_original – a networkx/igraph object
- initial_membership – list of int Initial membership for the partition. If
Nonethen defaults to a singleton partition. Deafault None
- weights – list of double, or edge attribute Weights of edges. Can be either an iterable or an edge attribute. Deafault None
>>> from cdlib import algorithms >>> import networkx as nx >>> G = nx.karate_club_graph() >>> coms = algorithms.leiden(G)
Traag, Vincent, Ludo Waltman, and Nees Jan van Eck. From Louvain to Leiden: guaranteeing well-connected communities. arXiv preprint arXiv:1810.08473 (2018).
Reference implementation: https://github.com/vtraag/leidenalg