1. Learn
  2. /
  3. Cursuri
  4. /
  5. Python 中級ネットワーク解析

Connected

exercițiu

射影の計算

二部グラフを、その片方のパーティションのノードに射影してみましょう。これは、二部グラフとその単部グラフへの射影を相互に変換する練習になります。動画で学んだとおり、グラフを一方のパーティションに「射影」するとは、もう一方のパーティションへの接続に基づいて、そのパーティション内のノード同士のつながり(連結性)を表すことです。より具体的には、「共通の購入に基づく顧客同士のつながり」をイメージするとわかりやすいです。

最初の一歩として、リスト内包表記に関するヒントです。リスト内包表記には条件を含められるので、特定のタイプのノードでグラフをフィルタしたい場合は、次のように書けます: [n for n, d in G.nodes(data=True) if d['key'] == 'some_value']。

Instrucțiuni

100 XP
  • リスト内包表記を使って people のノードリストを用意してください。G のノード n の 'bipartite' キーが 'people' と等しければ、そのノードをノードリストに含めます。
  • メタデータを「含めて」G のノードを反復し、clubs のノードリストを用意してください。ここでは、メタデータ辞書 d の 'bipartite' キーが 'clubs' と等しいかを確認します。注: これはノードリストを作る別のやり方です。メタデータを反復せず、people のノードリストと同じ方法で 'clubs' をチェックしても構いません。ここでは両方の方法に慣れるため、あえて別のやり方を練習します。
  • nx.bipartite.projected_graph() を使って、people と clubs の射影を計算し、結果をそれぞれ peopleG と clubsG に保存してください。
    • この関数は2つの引数を取ります: グラフ G とノードリストです。