極大クリーク

Pythonで学ぶネットワーク分析入門

Eric Ma

Data Carpentry instructor and author of nxviz package

極大クリーク

  • 定義: 1 ノード追加するとクリークでなくなるクリーク

5 ノードのグラフ。4 ノードがクリーク(互いに全て接続)。そのうち 3 ノードが緑で強調。5 番目のノードは 1 つだけに接続。

Pythonで学ぶネットワーク分析入門

極大クリーク

  • 定義: 1 ノード追加するとクリークでなくなるクリーク

同じ 5 ノードのグラフ。クリークの 4 ノードすべてが緑で強調。

Pythonで学ぶネットワーク分析入門

極大クリーク

  • 用途: コミュニティ検出

同じ 5 ノードのグラフ。

Pythonで学ぶネットワーク分析入門

コミュニティ

  • クリークを見つける
  • クリークの和集合を見つける

同じ 5 ノードのグラフ。

Pythonで学ぶネットワーク分析入門

NetworkX API

  • find_cliques はすべての極大クリークを返す
Pythonで学ぶネットワーク分析入門

極大クリーク

import networkx as nx
G = nx.barbell_graph(m1=5, m2=1)

nx.find_cliques(G)
<generator object find_cliques at 0x1043f1f68>
list(nx.find_cliques(G))
[[4, 0, 1, 2, 3], [4, 5], [6, 8, 9, 10, 7], [6, 5]]

Pythonで学ぶネットワーク分析入門

極大クリーク

import networkx as nx
G = nx.barbell_graph(m1=5, m2=1)
nx.find_cliques(G)
<generator object find_cliques at 0x1043f1f68>
list(nx.find_cliques(G))
[[4, 0, 1, 2, 3], [4, 5], [6, 8, 9, 10, 7], [6, 5]]

2 つのグラフ。各グラフで 5 ノードが極大クリークを形成している。

Pythonで学ぶネットワーク分析入門

極大クリーク

import networkx as nx
G = nx.barbell_graph(m1=5, m2=1)
nx.find_cliques(G)
<generator object find_cliques at 0x1043f1f68>
list(nx.find_cliques(G))
[[4, 0, 1, 2, 3], [4, 5], [6, 8, 9, 10, 7], [6, 5]]

4 つのグラフ。先ほどの 5 ノードの 2 クリークに加え、辺で結ばれた 2 ノードのグラフが 2 つ。

Pythonで学ぶネットワーク分析入門

Passons à la pratique !

Pythonで学ぶネットワーク分析入門

Preparing Video For Download...