Introduction to Graph Cluster Analysis Outline Introduction to - - PowerPoint PPT Presentation

introduction to graph cluster analysis outline
SMART_READER_LITE
LIVE PREVIEW

Introduction to Graph Cluster Analysis Outline Introduction to - - PowerPoint PPT Presentation

Introduction to Graph Cluster Analysis Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering k-Spanning Tree Shared Nearest Neighbor Betweenness Centrality Based Highly


slide-1
SLIDE 1

Introduction to Graph Cluster Analysis

slide-2
SLIDE 2

Outline

  • Introduction to Cluster Analysis
  • Types of Graph Cluster Analysis
  • Algorithms for Graph Clustering

k-Spanning Tree Shared Nearest Neighbor Betweenness Centrality Based Highly Connected Components Maximal Clique Enumeration Kernel k-means

  • Application

2

slide-3
SLIDE 3

Outline

  • Introduction to Clustering
  • Introduction to Graph Clustering
  • Algorithms for Graph Clustering

k-Spanning Tree Shared Nearest Neighbor Betweenness Centrality Based Highly Connected Components Maximal Clique Enumeration Kernel k-means

  • Application

3

slide-4
SLIDE 4

What is Cluster Analysis?

The process of dividing a set of input data into possibly

  • verlapping, subsets, where elements in each subset are

considered related by some similarity measure

4

2 Clusters 3 Clusters

slide-5
SLIDE 5

Applications of Cluster Analysis

5

  • Summarization

– Provides a macro-level view

  • f the data-set

Clustering precipitation in Australia

From Tan, Steinbach, Kumar Introduction To Data Mining, Addison-Wesley, Edition 1

slide-6
SLIDE 6

Outline

  • Introduction to Clustering
  • Introduction to Graph Clustering
  • Algorithms for Graph Clustering

k-Spanning Tree Shared Nearest Neighbor Betweenness Centrality Based Highly Connected Components Maximal Clique Enumeration Kernel k-means

  • Application

6

slide-7
SLIDE 7

What is Graph Clustering?

  • Types

– Between-graph

  • Clustering a set of graphs

– Within-graph

  • Clustering the nodes/edges of a single graph

7

slide-8
SLIDE 8

Between-graph Clustering

Between-graph clustering methods divide a set of graphs into different clusters E.g., A set of graphs representing chemical compounds can be grouped into clusters based on their structural similarity

8

slide-9
SLIDE 9

Within-graph Clustering

Within-graph clustering methods divides the nodes

  • f a graph into clusters

E.g., In a social networking graph, these clusters could represent people with same/similar hobbies

9

Note: In this chapter we will look at different algorithms to perform within-graph clustering

slide-10
SLIDE 10

Outline

  • Introduction to Clustering
  • Introduction to Graph Clustering
  • Algorithms for Within Graph Clustering

k-Spanning Tree Shared Nearest Neighbor Betweenness Centrality Based Highly Connected Components Maximal Clique Enumeration Kernel k-means

  • Application

10

slide-11
SLIDE 11

k-Spanning Tree

11

1 2 3 4 5 2 3 2

k-Spanning Tree

k

k groups

  • f

non-overlapping vertices

4 Minimum Spanning Tree STEPS:

  • Obtains the Minimum Spanning Tree (MST) of input graph G
  • Removes k-1 edges from the MST
  • Results in k clusters
slide-12
SLIDE 12

What is a Spanning Tree?

A connected subgraph with no cycles that includes all vertices in the graph

12

1 2 3 4 5 2 3 2 4 6 5 7 4 1 2 3 4 5 2 6 7

Weight = 17

2

Note: Weight can represent either distance or similarity between two vertices or similarity of the two vertices

G

slide-13
SLIDE 13

What is a Minimum Spanning Tree (MST)?

13

1 2 3 4 5 2 3 2 4 6 5 7 4

G

1 2 3 4 5 2 3 2 4

Weight = 11

2 1 2 3 4 5 2 4 5

Weight = 13

1 2 3 4 5 2 6 7

Weight = 17

2

The spanning tree of a graph with the minimum possible sum

  • f edge weights, if the edge weights represent distance

Note: maximum possible sum of edge weights, if the edge weights represent similarity

slide-14
SLIDE 14

Algorithm to Obtain MST Prim’s Algorithm

14

1 2 3 4 5 2 3 2 4 6 5 7 4 Given Input Graph G Select Vertex Randomly e.g., Vertex 5 5 Initialize Empty Graph T with Vertex 5 5 T Select a list of edges L from G such that at most ONE vertex of each edge is in T From L select the edge X with minimum weight Add X to T 5 5 3 4 6 4 5 4 4 5 T 4 Repeat until all vertices are added to T

slide-15
SLIDE 15

k-Spanning Tree

15

1 2 3 4 5 2 3 2

Remove k-1 edges with highest weight

4 Minimum Spanning Tree Note: k – is the number of clusters E.g., k=3 1 2 3 4 5 2 3 2 4 E.g., k=3 1 2 3 4 5 3 Clusters

slide-16
SLIDE 16

k-Spanning Tree R-code

  • library(GraphClusterAnalysis)
  • library(RBGL)
  • library(igraph)
  • library(graph)
  • data(MST_Example)
  • G = graph.data.frame(MST_Example,directed=FALSE)
  • E(G)$weight=E(G)$V3
  • MST_PRIM = minimum.spanning.tree(G,weights=G$weight, algorithm = "prim")
  • OutputList = k_clusterSpanningTree(MST_PRIM,3)
  • Clusters = OutputList[[1]]
  • utputGraph = OutputList[[2]]
  • Clusters

16

slide-17
SLIDE 17

Outline

  • Introduction to Clustering
  • Introduction to Graph Clustering
  • Algorithms for Within Graph Clustering

k-Spanning Tree Shared Nearest Neighbor Clustering Betweenness Centrality Based Highly Connected Components Maximal Clique Enumeration Kernel k-means

  • Application

17

slide-18
SLIDE 18

18

Shared Nearest Neighbor Clustering

1 2 3 4

Shared Nearest Neighbor Graph (SNN)

2 2 2 2 1 1 3 2

Shared Nearest Neighbor Clustering Groups

  • f

non-overlapping vertices

STEPS:

  • Obtains the Shared Nearest Neighbor Graph (SNN) of input graph G
  • Removes edges from the SNN with weight less than τ

τ

slide-19
SLIDE 19

What is Shared Nearest Neighbor? (Refresher from Proximity Chapter)

19

u v

Shared Nearest Neighbor is a proximity measure and denotes the number of neighbor nodes common between any given pair of nodes

slide-20
SLIDE 20

Shared Nearest Neighbor (SNN) Graph

20

1 2 3 4 G 1 2 3 4 SNN

2 2 2 2 1 1 3

Given input graph G, weight each edge (u,v) with the number of shared nearest neighbors between u and v

1

Node 0 and Node 1 have 2 neighbors in common: Node 2 and Node 3

slide-21
SLIDE 21

Shared Nearest Neighbor Clustering Jarvis-Patrick Algorithm

21

1 2 3 4

SNN graph of input graph G

2 2 2 2 1 1 3 2

If u and v share more than τ neighbors Place them in the same cluster

1 2 3 4

E.g., τ =3

slide-22
SLIDE 22

SNN-Clustering R code

  • library(GraphClusterAnalysis)
  • library(RBGL)
  • library(igraph)
  • library(graph)
  • data(SNN_Example)
  • G = graph.data.frame(SNN_Example,directed=FALSE)
  • tkplot(G)
  • Output = SNN_Clustering(G,3)
  • Output

22

slide-23
SLIDE 23

Outline

  • Introduction to Clustering
  • Introduction to Graph Clustering
  • Algorithms for Within Graph Clustering

k-Spanning Tree Shared Nearest Neighbor Clustering Betweenness Centrality Based Highly Connected Components Maximal Clique Enumeration Kernel k-means

  • Application

23

slide-24
SLIDE 24

What is Betweenness Centrality? (Refresher from Proximity Chapter)

Two types: – Vertex Betweenness – Edge Betweenness

24

Betweenness centrality quantifies the degree to which a vertex (or edge) occurs on the shortest path between all the other pairs of nodes

slide-25
SLIDE 25

Vertex Betweenness

25

The number of shortest paths in the graph G that pass through a given node S G

E.g., Sharon is likely a liaison between NCSU and DUKE and hence many connections between DUKE and NCSU pass through Sharon

slide-26
SLIDE 26

Edge Betweenness

The number of shortest paths in the graph G that pass through given edge (S, B)

26

E.g., Sharon and Bob both study at NCSU and they are the only link between NY DANCE and CISCO groups

NCSU

Vertices and Edges with high Betweenness form good starting points to identify clusters

slide-27
SLIDE 27

Vertex Betweenness Clustering

27

Repeat until highest vertex betweenness ≤ µ Select vertex v with the highest betweenness E.g., Vertex 3 with value 0.67

Given Input graph G Betweenness for each vertex

  • 1. Disconnect graph at

selected vertex (e.g., vertex 3 )

  • 2. Copy vertex to both

Components

slide-28
SLIDE 28

Vertex Betweenness Clustering R code

  • library(GraphClusterAnalysis)
  • library(RBGL)
  • library(igraph)
  • library(graph)
  • data(Betweenness_Vertex_Example)
  • G = graph.data.frame(Betweenness_Vertex_Example,directed=FALSE)
  • betweennessBasedClustering(G,mode="vertex",threshold=0.2)

28

slide-29
SLIDE 29

29

Edge-Betweenness Clustering Girvan and Newman Algorithm

29

Repeat until highest edge betweenness ≤ µ Select edge with Highest Betweenness E.g., edge (3,4) with value 0.571

Given Input Graph G Betweenness for each edge

Disconnect graph at selected edge (E.g., (3,4 ))

slide-30
SLIDE 30

Edge Betweenness Clustering R code

  • library(GraphClusterAnalysis)
  • library(RBGL)
  • library(igraph)
  • library(graph)
  • data(Betweenness_Edge_Example)
  • G = graph.data.frame(Betweenness_Edge_Example,directed=FALSE)
  • betweennessBasedClustering(G,mode="edge",threshold=0.2)

30

slide-31
SLIDE 31

Outline

  • Introduction to Clustering
  • Introduction to Graph Clustering
  • Algorithms for Within Graph Clustering

k-Spanning Tree Shared Nearest Neighbor Clustering Betweenness Centrality Based Highly Connected Components Maximal Clique Enumeration Kernel k-means

  • Application

31

slide-32
SLIDE 32

What is a Highly Connected Subgraph?

  • Requires the following definitions

– Cut – Minimum Edge Cut (MinCut) – Edge Connectivity (EC)

32

slide-33
SLIDE 33

Cut

  • The set of edges whose removal disconnects a graph

33

6 5 4 7 3 2 1 8 6 5 4 7 3 2 1 8 6 5 4 7 3 2 1 8

Cut = {(0,1),(1,2),(1,3} Cut = {(3,5),(4,2)}

slide-34
SLIDE 34

Minimum Cut

34

6 5 4 7 3 2 1 8 6 5 4 7 3 2 1 8

MinCut = {(3,5),(4,2)}

The minimum set of edges whose removal disconnects a graph

slide-35
SLIDE 35

Edge Connectivity (EC)

  • Minimum NUMBER of edges that will disconnect

a graph

35

6 5 4 7 3 2 1 8

MinCut = {(3,5),(4,2)} EC = | MinCut| = | {(3,5),(4,2)}| = 2 Edge Connectivity

slide-36
SLIDE 36

Highly Connected Subgraph (HCS)

A graph G =(V,E) is highly connected if EC(G)>V/2

36

6 5 4 7 3 2 1 8

EC(G) > V/2 2 > 9/2

G G is NOT a highly connected subgraph

slide-37
SLIDE 37

HCS Clustering

37

6 5 4 7 3 2 1 8

Find the Minimum Cut MinCut (G) Given Input graph G (3,5),(4,2)} YES Return G NO

G1 G2

Divide G using MinCut Is EC(G)> V/2 Process Graph G1 Process Graph G2

slide-38
SLIDE 38

HCS Clustering R code

  • library(GraphClusterAnalysis)
  • library(RBGL)
  • library(igraph)
  • library(graph)
  • data(HCS_Example)
  • G = graph.data.frame(HCS_Example,directed=FALSE)
  • HCSClustering(G,kappa=2)

38

slide-39
SLIDE 39

Outline

  • Introduction to Clustering
  • Introduction to Graph Clustering
  • Algorithms for Within Graph Clustering

k-Spanning Tree Shared Nearest Neighbor Clustering Betweenness Centrality Based Highly Connected Components Maximal Clique Enumeration Kernel k-means

  • Application

39

slide-40
SLIDE 40

What is a Clique?

A subgraph C of graph G with edges between all pairs of nodes

40

6 5 4 7 8

Clique

6 5 7

G C

slide-41
SLIDE 41

What is a Maximal Clique?

41

6 5 4 7 8

Clique Maximal Clique

6 5 7 6 5 7 8

A maximal clique is a clique that is not part

  • f a larger clique.
slide-42
SLIDE 42

42

BK(C,P,N) C - vertices in current clique P – vertices that can be added to C N – vertices that cannot be added to C Condition: If both P and N are empty – output C as maximal clique

Maximal Clique Enumeration Bron and Kerbosch Algorithm

Input Graph G

slide-43
SLIDE 43

Maximal Clique R code

  • library(GraphClusterAnalysis)
  • library(RBGL)
  • library(igraph)
  • library(graph)
  • data(CliqueData)
  • G = graph.data.frame(CliqueData,directed=FALSE)
  • tkplot(G)
  • maximalCliqueEnumerator (G)

43

slide-44
SLIDE 44

Outline

  • Introduction to Clustering
  • Introduction to Graph Clustering
  • Algorithms for Within Graph Clustering

k-Spanning Tree Shared Nearest Neighbor Clustering Betweenness Centrality Based Highly Connected Components Maximal Clique Enumeration Kernel k-means

  • Application

44

slide-45
SLIDE 45

What is k-means?

  • k-means is a clustering algorithm applied to vector

data points

  • k-means recap:

– Select k data points from input as centroids

  • 1. Assign other data points to the nearest centroid
  • 2. Recompute centroid for each cluster
  • 3. Repeat Steps 1 and 2 until centroids don’t change

45

slide-46
SLIDE 46

k-means on Graphs Kernel K-means

  • Basic algorithm is the same as k-means on Vector data
  • We utilize the “kernel trick” (recall Kernel Chapter)
  • “kernel trick” recap

– We know that we can use within-graph kernel functions to calculate the inner product of a pair of vertices in a user- defined feature space. – We replace the standard distance/proximity measures used in k-means with this within-graph kernel function

46

slide-47
SLIDE 47

Outline

  • Introduction to Clustering
  • Introduction to Graph Clustering
  • Algorithms for Within Graph Clustering

k-Spanning Tree Shared Nearest Neighbor Clustering Betweenness Centrality Based Highly Connected Components Maximal Clique Enumeration Kernel k-means

  • Application

47

slide-48
SLIDE 48

Application

  • Functional modules in protein-protein interaction

networks

  • Subgraphs with pair-wise interacting nodes => Maximal

cliques

48

R-code

  • library(GraphClusterAnalysis)
  • library(RBGL)
  • library(igraph)
  • library(graph)
  • data(YeasPPI)
  • G = graph.data.frame(YeasPPI,directed=FALSE)
  • Potential_Protein_Complexes = maximalCliqueEnumerator (G)
  • Potential_Protein_Complexes