cdlib.algorithms.leiden¶
-
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
None
then 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
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