introduction to graph cluster analysis. outline introduction to cluster analysis types of graph...

48
Introduction to Graph Cluster Analysis

Upload: anika-kittridge

Post on 22-Dec-2015

275 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Introduction to Graph Cluster Analysis

Page 2: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Outline

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

k-Spanning TreeShared Nearest NeighborBetweenness Centrality BasedHighly Connected ComponentsMaximal Clique EnumerationKernel k-means

• Application

2

Page 3: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Outline

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

k-Spanning TreeShared Nearest NeighborBetweenness Centrality BasedHighly Connected ComponentsMaximal Clique EnumerationKernel k-means

• Application

3

Page 4: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

What is Cluster Analysis?

The process of dividing a set of input data into possibly overlapping, subsets, where elements in each subset are considered related by some similarity measure

4

Clusters by Shape

Clusters by Color

2 Clusters

3 Clusters

Page 5: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Applications of Cluster Analysis

5

• Summarization– Provides a macro-level

view of the data-set

Clustering precipitation in Australia

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

Page 6: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Outline

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

k-Spanning TreeShared Nearest NeighborBetweenness Centrality BasedHighly Connected ComponentsMaximal Clique EnumerationKernel k-means

• Application

6

Page 7: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

What is Graph Clustering?

• Types– Between-graph

• Clustering a set of graphs

– Within-graph• Clustering the nodes/edges of a single graph

7

Page 8: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

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

Page 9: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Within-graph Clustering

Within-graph clustering methods divides the nodes of 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

Page 10: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Outline

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

k-Spanning TreeShared Nearest NeighborBetweenness Centrality BasedHighly Connected ComponentsMaximal Clique EnumerationKernel k-means

• Application

10

Page 11: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

k-Spanning Tree

11

1

2

3

4

5

2

3 2k-Spanning

Tree

k

k groups of

non-overlapping vertices4

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

Page 12: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

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

52

6

7Weight = 17

2

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

G

Page 13: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

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

21

2

3

4

52

45

Weight = 13

1

2

3

4

52

6

7Weight = 17

2

The spanning tree of a graph with the minimum possible sum of edge weights, if the edge weights represent distance

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

Page 14: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Algorithm to Obtain MSTPrim’s Algorithm

14

1

2

3

4

5

2

3 2

4

6

5

7 4

Given Input Graph G

Select Vertex Randomlye.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 445T

4

Repeat until all vertices are added to T

Page 15: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

k-Spanning Tree

15

1

2

3

4

5

2

3 2

Remove k-1 edges with highest

weight4

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

Page 16: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

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]]• outputGraph = OutputList[[2]]• Clusters

16

Page 17: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Outline

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

k-Spanning TreeShared Nearest Neighbor ClusteringBetweenness Centrality BasedHighly Connected ComponentsMaximal Clique EnumerationKernel k-means

• Application

17

Page 18: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

18

Shared Nearest Neighbor Clustering

0

1

2

3

4

Shared Nearest Neighbor Graph (SNN)

2

2

221

13

2

Shared Nearest

Neighbor Clusterin

g

Groups of

non-overlapping vertices

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

τ

Page 19: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

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

Page 20: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Shared Nearest Neighbor (SNN) Graph

20

0

1

2

3

4

G

0

1

2

3

4

SNN

2

2

221

13

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

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

Page 21: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Shared Nearest Neighbor ClusteringJarvis-Patrick Algorithm

21

0

1

2

3

4

SNN graph of input graph G

2

2

221

13

2

If u and v share more than τ neighbors

Place them in the same cluster

0

1

2

3

4

E.g., τ =3

Page 22: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

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

Page 23: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Outline

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

k-Spanning TreeShared Nearest Neighbor ClusteringBetweenness Centrality BasedHighly Connected ComponentsMaximal Clique EnumerationKernel k-means

• Application

23

Page 24: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

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

Page 25: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

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

Page 26: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Edge BetweennessThe 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

Page 27: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Vertex Betweenness Clustering

27

Repeat until highest vertex

betweenness ≤ μ

Select vertex v with the highest betweennessE.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

Page 28: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

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

Page 29: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

29

Edge-Betweenness ClusteringGirvan and Newman Algorithm

29

Repeat until highest edge

betweenness ≤ μ

Select edge with Highest BetweennessE.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 ))

Page 30: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

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

Page 31: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Outline

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

k-Spanning TreeShared Nearest Neighbor ClusteringBetweenness Centrality BasedHighly Connected ComponentsMaximal Clique EnumerationKernel k-means

• Application

31

Page 32: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

What is a Highly Connected Subgraph?

• Requires the following definitions– Cut – Minimum Edge Cut (MinCut)– Edge Connectivity (EC)

32

Page 33: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Cut

• The set of edges whose removal disconnects a graph

33

6

5

4

7

3 2

1

0

8

6

5

4

7

3 2

1

0

8

6

5

4

7

3 2

1

0

8

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

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

Page 34: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Minimum Cut

34

6

5

4

7

3 2

1

0

86

5

4

7

3 2

1

0

8

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

The minimum set of edges whose removal disconnects a graph

Page 35: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Edge Connectivity (EC)

• Minimum NUMBER of edges that will disconnect a graph

35

6

5

4

7

3 2

1

0

8

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

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

Edge Connectivity

Page 36: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

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

0

8

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

G

G is NOT a highly connected subgraph

Page 37: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

HCS Clustering

37

6

5

4

7

3 2

1

0

8Find the

Minimum CutMinCut (G)

Given Input graph G

(3,5),(4,2)}

YES

Return G

NO

3

2

10

6

5

4

78

G1 G2

Divide Gusing MinCut

Is EC(G)> V/2

Process Graph G1

Process Graph G2

Page 38: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

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

Page 39: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Outline

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

k-Spanning TreeShared Nearest Neighbor ClusteringBetweenness Centrality BasedHighly Connected ComponentsMaximal Clique EnumerationKernel k-means

• Application

39

Page 40: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

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

7G C

Page 41: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

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 of a larger clique.

Page 42: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

42

BK(C,P,N)C - vertices in current cliqueP – vertices that can be added to CN – vertices that cannot be added to C

Condition: If both P and N are empty – output C as maximal clique

Maximal Clique EnumerationBron and Kerbosch Algorithm

Input Graph G

Page 43: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

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

Page 44: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Outline

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

k-Spanning TreeShared Nearest Neighbor ClusteringBetweenness Centrality BasedHighly Connected ComponentsMaximal Clique EnumerationKernel k-means

• Application

44

Page 45: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

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 centroids1. Assign other data points to the nearest centroid2. Recompute centroid for each cluster3. Repeat Steps 1 and 2 until centroids don’t

change

45

Page 46: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

k-means on GraphsKernel 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

Page 47: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

Outline

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

k-Spanning TreeShared Nearest Neighbor ClusteringBetweenness Centrality BasedHighly Connected ComponentsMaximal Clique EnumerationKernel k-means

• Application

47

Page 48: Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning

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