cdlib.algorithms.angel

angel(g_original: object, threshold: float, min_community_size: int = 3) → cdlib.classes.node_clustering.NodeClustering

Angel is a node-centric bottom-up community discovery algorithm. It leverages ego-network structures and overlapping label propagation to identify micro-scale communities that are subsequently merged in mesoscale ones. Angel is the, faster, successor of Demon.

Supported Graph Types

Undirected Directed Weighted
Yes No No
Parameters:
  • g_original – a networkx/igraph object
  • threshold – merging threshold in [0,1].
  • min_community_size – minimum community size, default 3.
Returns:

NodeClustering object

Example:
>>> from cdlib import algorithms
>>> import networkx as nx
>>> G = nx.karate_club_graph()
>>> coms = algorithms.angel(G, min_com_size=3, threshold=0.25)
References:
  1. Rossetti, Giulio. “Exorcising the Demon: Angel, Efficient Node-Centric Community Discovery.” International Conference on Complex Networks and Their Applications. Springer, Cham, 2019.

Note

Reference implementation: https://github.com/GiulioRossetti/ANGEL