cdlib.algorithms.sbm_dl

sbm_dl(g_original: object, B_min: int = None, B_max: int = None, deg_corr: bool = True, **kwargs) → cdlib.classes.node_clustering.NodeClustering

Efficient Monte Carlo and greedy heuristic for the inference of stochastic block models.

Fit a non-overlapping stochastic block model (SBM) by minimizing its description length using an agglomerative heuristic. If no parameter is given, the number of blocks will be discovered automatically. Bounds for the number of communities can be provided using B_min, B_max.

Parameters:
  • g_original – network/igraph object
  • B_min – minimum number of communities that can be found
  • B_max – maximum number of communities that can be found
  • deg_corr – if true, use the degree corrected version of the SBM
Returns:

NodeClustering object

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

Tiago P. Peixoto, “Efficient Monte Carlo and greedy heuristic for the inference of stochastic block models”, Phys. Rev. E 89, 012804 (2014), DOI: 10.1103/PhysRevE.89.012804 [sci-hub, @tor], arXiv: 1310.4378. .. note:: Use implementation from graph-tool library, please report to https://graph-tool.skewed.de for details