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

Connected

演習

三角関係の特定

クリークについて学んだところで、その知識を使ってネットワーク内の構造を見つけてみましょう。最初の目標は「三角形」です。三角形は、最も単純な複雑クリークであるため、しばしば注目されます。ここではいくつかの関数を書き、この章の演習を通じてネットワークアルゴリズムの基本的な考え方を身につけます。

Twitter のネットワークでは、各ノードにユーザーの職業を示す 'occupation' ラベルが付いており、celebrity、politician、scientist に分類されています。三角形検出アルゴリズムの応用の一つは、似た職業を持つユーザー同士が、互いにクリークを形成しやすいかどうかを調べることです。

指示

100 XP
  • itertools から combinations をインポートします。
  • 2 つの引数 G と n を受け取り、指定したノードが三角関係にあるかどうかをチェックする関数 is_in_triangle() を作成します。
    • combinations(iterable, n) は、iterable から大きさ n の組合せを返します。ここでは、list(G.neighbors(n)) から大きさ 2 の組合せが必要になるため有用です。
    • 2 つのノード間にエッジがあるかを確認するには、.has_edge(node1, node2) メソッドを使います。エッジが存在する場合、そのノードは三角関係にあるので、True を返してください。