6

簡単に言えば、 のminimize_nested_blockmodel_dl関数に関する 2 ~ 3 の基本的な質問graph-tool libraryです。どの頂点がどのブロックに落ちるかを把握する方法はありますか? つまり、各ブロックから頂点のラベルを含むリストを抽出します。

階層的な視覚化は、ネットワーク理論のアマチュアにとって理解するのはかなり困難です。たとえば、描かれた有向エッジを持つ正方形は、考慮中の 2 つのブロック間の下にあるエッジの主な方向を暗示するためのものですか? ブロックはさまざまな色を使用してうまく表示されていますが、非常に概念的なレベルで、頂点のブロック分類の背後にあるパターンまたはエッジ/頂点プロパティのタイプはどれですか? つまり、2 つの頂点が同じブロックにある場合、それらの共通のプロパティについて何が言えるでしょうか?

4

1 に答える 1

9

最初の質問に関しては、かなり単純明快です。関数はオブジェクト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

2 番目の質問に関して、確率的ブロック モデルは、同じグループに属するノードがネットワークの残りの部分に接続する確率が同じであると想定しています。したがって、上記の関数によって同じグループに分類されるノードは、同様の接続パターンを持ちます。たとえば、サッカー ネットワークの適合性を見ると、次のようになります。

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

ここに画像の説明を入力

同じグループに属するノードは、同じグループの他のノードとの接続が多い傾向にあることがわかります。これは、コミュニティ構造の典型的な例です。ただし、これはストキャスティクス ブロック モデルによって明らかになる多くの可能性の 1 つにすぎません。他のトポロジー パターンには、コア周辺組織、二部構成などがあります。

于 2016-06-21T20:41:27.603 に答える