1. 学ぶ
  2. /
  3. コース
  4. /
  5. Pythonで学ぶネットワーク分析入門

Connected

演習

編集コミュニティの特徴づけ

これまでに学んだ BFS アルゴリズムと最大クリークの概念を組み合わせて、Arc plot でネットワークを可視化してみましょう。

GitHub のユーザー共同作業ネットワークにおける最大の最大クリークは、サブグラフ G_lmc に割り当てられています。NetworkX のバージョン 2.x 以降では、G.subgraph(nodelist) は元のグラフへの不変ビューのみを返す点に注意してください。変更可能なバージョンを得るには、明示的に .copy() を呼び出す必要があります。

指示

100 XP
  • クリークから 1 次の近接まで範囲を広げ、そのユーザーをサブグラフに追加します。最初の for ループ内で行います。
    • .add_nodes_from() と .neighbors() メソッドを使って、G の近傍から G_lmc にノードを追加します。
    • .add_edges_from() メソッドを使って、現在のノードとそのすべての近傍との間に G_lmc へエッジを追加します。そのために、zip() 関数で現在のノードと各近傍からなるタプルのリストを作成します。zip() の第1引数は [node]*len(list(G.neighbors(node)))、第2引数は node の近傍にしてください。
  • 各ノードの次数中心性スコアを、そのノードのメタデータに記録します。
    • 2つ目の for ループで、nx.degree_centrality(G_lmc)[n] を G_lmc.nodes[n]['degree centrality'] に代入します。
  • ノードを次数中心性で並べ替えて、このネットワークを Arc plot で可視化します(キーワード引数 sort_by='degree centrality' を使います)。