【问题标题】:Basic questions about nested blockmodel in graph-tool关于图形工具中嵌套块模型的基本问题
【发布时间】:2016-10-23 00:43:23
【问题描述】:

非常简短,关于graph-tool library 中的minimize_nested_blockmodel_dl 函数的两到三个基本问题。有没有办法找出哪个顶点落在哪个块上?换句话说,从每个块中提取一个列表,包含其顶点的标签。

层次可视化对于网络理论的业余爱好者来说是相当难以理解的,例如绘制的带有有向边的正方形是否意味着正在考虑的两个块之间的底层边缘的主要方向?这些块使用不同的颜色很好地显示,但在一个非常概念的层面上,哪些类型的模式或边缘/顶点属性在顶点的块分类背后?换句话说,当两个顶点在同一个块中时,我能说一下它们的共同属性吗?

【问题讨论】:

    标签: python graph-theory graph-tool


    【解决方案1】:

    关于您的第一个问题,它相当简单: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")
    

    我们看到属于同一组的节点往往与同一组的其他节点有更多的连接——社区结构的典型示例。然而,这只是随机块模型可以发现的众多可能性之一。其他拓扑模式包括核心-外围组织、二分性等。

    【讨论】:

    • 非常感谢您抽出宝贵时间回答,太好了!如果可以的话,有两个子问题:(i)假设块可能代表网络的组件是否公平? (ii) 有向边的正方形在图中代表什么?
    • (i) 是的,这是该模型的典型解释。 (ii) 正方形代表层次结构,即当我们使用相同模型对第一级组网络进行建模时会发生什么。你可以在这里了解更多信息:dx.doi.org/10.1103/PhysRevX.4.011047
    • 再次感谢,事实上我已经开始阅读你关于 arXiv 的论文(漂亮的工作),但是由于我是这个领域的新手,所以进展非常缓慢,因此我的问题很幼稚:(( 所以如果我理解正确,样条线表示实际网络的边缘,没有显示它们的方向,而且在第一级层次可视化中,正方形之间边缘的方向 not 真正描绘了方向网络的原始边缘,对吧?因为在您在这里显示的图中,我看到绿色样条线会变成蓝绿色,但正方形没有这样的路径。
    • 那个网络是无向的。如果被指示,您会看到一个箭头。您在层次结构边缘看到一个箭头只是作为可视化辅助工具,它与底层网络无关。
    • (该图对于大图来说是一个非常强大的可视化)有没有办法用 gt 获得类似的图,但对于自己的集群/社区?即,如果我使用 saltons cosine 运行层次聚类,并得到一堆聚类,但我想像 gt 中的这个图一样将它们可视化,可以这样做吗? (如有必要,我会发布一个单独的问题,很抱歉劫持了这个问题;对 gt 来说也很新。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    相关资源
    最近更新 更多