Block number limits in community detection with metadata


I am using the minimize_blockmodel_dl() function and the LayeredBlockState
class to conduct community detection with metadata. I would like to know if
it is possible to specify the block number limits separately for the user
clusters and the metadata clusters (instead of the total block number limit)
during the SBM inference? Since we want to have different granularity for
user clusters and metadata clusters.

(P.S. I tried using nested SBM and merging separately the user clusters and
the metadata clusters. It worked to some extent, but it seems impossible to
accurately control the final number of clusters, which we might need to.)


You can initialize the BlockState from a partition that contains the
desired number of groups, and then call
BlockState.multiflip_mcmc_sweep(d=0, psplit=0, pmerge=0) which will
preserve the number of groups in both partitions.