关于您的第一个问题,它相当简单:该minimize_nested_blockmodel_dl()
函数返回一个NestedBlockState
对象:
g = collection.data["football"]
state = minimize_nested_blockmodel_dl(g)
您可以通过检查层次结构的第一级来查询节点的组成员身份:
lstate = state.levels[0]
这是一个对象,我们通过以下方法BlockState
从中获取组成员身份:get_blocks()
b = lstate.get_blocks()
print(b[30]) # prints the group membership of node 30
关于您的第二个问题,随机块模型假设属于同一组的节点具有相同的连接到网络其余部分的概率。因此,被上述函数归入同一组的节点具有相似的连接模式。例如,如果我们查看适合足球网络的情况:
state.draw(output="football.png")
我们看到,属于同一组的节点往往与同一组的其他节点有更多的连接——社区结构的一个典型例子。然而,这只是随机块模型可以发现的众多可能性之一。其他拓扑模式包括核心-外围组织、二分性等。