Basic questions about nested blockmodel in graph-tool

前端 未结 1 1921
别那么骄傲
别那么骄傲 2021-02-06 10:36

Very briefly, two-three basic questions about the minimize_nested_blockmodel_dl function in graph-tool library. Is there a way to figure out which vertex falls onto which block?

相关标签:
1条回答
  • 2021-02-06 10:58

    Regarding your first question, it is fairly straightforward: The minimize_nested_blockmodel_dl() function returns a NestedBlockState object:

     g = collection.data["football"]
     state = minimize_nested_blockmodel_dl(g)
    

    you can query the group membership of the nodes by inspecting the first level of the hierarchy:

     lstate = state.levels[0]
    

    This is a BlockState object, from which we get the group memberships via the get_blocks() method:

     b = lstate.get_blocks()
     print(b[30])  # prints the group membership of node 30
    

    Regarding your second question, the stochastic block model assumes that nodes that belong to the same group have the same probability of connecting to the rest of the network. Hence, nodes that get classified in the same group by the function above have similar connectivity patterns. For example, if we look at the fit for the football network:

    state.draw(output="football.png")
    

    We see that nodes that belong to the same group tend to have more connections to other nodes of the same group --- a typical example of community structure. However, this is just one of the many possibilities that can be uncovered by the stochastic block model. Other topological patterns include core-periphery organization, bipartiteness, etc.

    0 讨论(0)
提交回复
热议问题