cliques & communities - amazon s3€¦ · network analysis in python i cliques social cliques:...

20
NETWORK ANALYSIS IN PYTHON I Cliques & communities

Upload: others

Post on 22-Aug-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

NETWORK ANALYSIS IN PYTHON I

Cliques & communities

Page 2: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

Network Analysis in Python I

Cliques● Social cliques: tightly-knit groups

● Network cliques: completely connected graphs

Page 3: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

Network Analysis in Python I

Cliques● Simplest complex clique: a triangle

Page 4: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

Network Analysis in Python I

Triangle applications● Friend recommendation systems

Page 5: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

Network Analysis in Python I

Clique codeIn [1]: G Out[1]: <networkx.classes.graph.Graph at 0x10c99ecf8>

In [2]: from itertools import combinations

In [3]: for n1, n2 in combinations(G.nodes(), 2): ...: print(n1, n2) 0 1 0 2 0 3 0 4 0 5 ... ...

Page 6: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

NETWORK ANALYSIS IN PYTHON I

Let’s practice!

Page 7: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

NETWORK ANALYSIS IN PYTHON I

Maximal cliques

Page 8: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

Network Analysis in Python I

Maximal cliques● Definition: a clique that, when extended by one node is no

longer a clique

Page 9: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

Network Analysis in Python I

Maximal cliques● Definition: a clique that, when extended by one node is no

longer a clique

Page 10: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

Network Analysis in Python I

Maximal cliques● Applications: community finding

Page 11: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

Network Analysis in Python I

Communities● Find cliques

● Find unions of cliques

Page 12: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

Network Analysis in Python I

NetworkX API● find_cliques finds all maximal cliques

Page 13: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

Network Analysis in Python I

Maximal cliquesIn [1]: import networkx as nx

In [2]: G = nx.barbell_graph(m1=5, m2=1)

In [3]: nx.find_cliques(G) Out[3]: <generator object find_cliques at 0x1043f1f68>

In [4]: list(nx.find_cliques(G)) Out[4]: [[4, 0, 1, 2, 3], [4, 5], [6, 8, 9, 10, 7], [6, 5]]

Page 14: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

NETWORK ANALYSIS IN PYTHON I

Let’s practice!

Page 15: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

NETWORK ANALYSIS IN PYTHON I

Subgraphs

Page 16: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

Network Analysis in Python I

Subgraphs● Visualize portions of a large graph

● Paths

● Communities/cliques

● Degrees of separation from a node

Page 17: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

Network Analysis in Python I

SubgraphsIn [1]: import networkx as nx

In [2]: G = nx.erdos_renyi_graph(n=20, p=0.2)

In [3]: G.nodes() Out[3]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

In [4]: nodes = G.neighbors(8)

In [5]: nodes Out[5]: [2, 3, 4, 10]

In [6]: nodes.append(8)

Page 18: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

Network Analysis in Python I

SubgraphsIn [7]: G_eight = G.subgraph(nodes)

In [8]: G_eight.edges() Out[8]: [(8, 2), (8, 3), (8, 4), (8, 10), (2, 10)]

In [9]: G_eight Out[9]: <networkx.classes.graph.Graph at 0x10cae39e8>

In [10]: G Out[10]: <networkx.classes.graph.Graph at 0x10cad1f60>

Page 19: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

Network Analysis in Python I

SubgraphsIn [11]: nx.draw(G_eight, with_labels=True)

Page 20: Cliques & communities - Amazon S3€¦ · Network Analysis in Python I Cliques Social cliques: tightly-knit groups Network cliques: completely connected graphs

NETWORK ANALYSIS IN PYTHON I

Let’s practice!