cdlib.benchmark.SBM¶
- cdlib.benchmark.SBM(sizes: list, p: list, nodelist: list | None = None, seed: object = 42, directed: bool = False, selfloops: bool = False, sparse: bool = True) [<class 'object'>, <class 'object'>]¶
返回一个随机块模型图。
该模型将节点划分为任意大小的块,并在节点对之间独立地放置边,其概率取决于这些块。
- Parameters:
sizes – 块的大小(整数列表)
p – 元素 (r,s) 表示从组 r 的节点到组 s 的节点的边的密度。p 必须与组的数量匹配(len(sizes) == len(p)),并且如果图是无向的,它必须是对称的。(浮点数列表)
nodelist – 块标签根据nodelist中的节点标识符进行分配。如果nodelist为None,则顺序为范围[0,sum(sizes)-1]。可选,默认为None。
seed – 随机数生成状态的指示器。
directed – 是否创建有向图。布尔值,默认为False。
selfloops – 是否包含自循环。可选,默认为 False。
sparse – 使用稀疏启发式方法来加速生成器。可选,默认为True。
- Returns:
一个networkx合成图,社区集合(NodeClustering对象)
- Example:
>>> from cdlib.benchmark import SBM >>> sizes = [75, 75, 300] >>> probs = [[0.25, 0.05, 0.02], [0.05, 0.35, 0.07], [0.02, 0.07, 0.40]] >>> G, coms = SBM(sizes, probs, seed=0)
- References:
Holland, P. W., Laskey, K. B., & Leinhardt, S., “随机块模型:初步探索”, 社交网络, 5(2), 109-137, 1983.