Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning.

Similar presentations


Presentation on theme: "Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning."— Presentation transcript:

1 Introduction to Graph Cluster Analysis

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

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

4 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

5 Applications of Cluster Analysis 5 Summarization – Provides a macro-level view of the data-set Clustering precipitation in Australia From Tan, Steinbach, Kumar Introduction To Data Mining, Addison-Wesley, Edition 1

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

7 What is Graph Clustering? Types – Between-graph Clustering a set of graphs – Within-graph Clustering the nodes/edges of a single graph 7

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

9 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

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

11 k-Spanning Tree 11 1 2 3 4 5 2 3 2 k-Spanning Tree k k groups of 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

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

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 52 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 of edge weights, if the edge weights represent distance Note: maximum possible sum of edge weights, if the edge weights represent similarity

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 5534 6 4 54 4 5 T 4 Repeat until all vertices are added to T

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 1 2 3 4 5 3 Clusters

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

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

18 18 Shared Nearest Neighbor Clustering 0 1 2 3 4 Shared Nearest Neighbor Graph (SNN) 2 2 2 2 1 1 3 2 Shared Nearest Neighbor Clustering 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 τ τ

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

20 Shared Nearest Neighbor (SNN) Graph 20 0 1 2 3 4 G 0 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

21 Shared Nearest Neighbor Clustering Jarvis-Patrick Algorithm 21 0 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 If u and v share more than τ neighbors Place them in the same cluster 0 1 2 3 4 E.g., τ =3

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

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

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

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

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

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 GBetweenness for each vertex 1. Disconnect graph at selected vertex (e.g., vertex 3 ) 2. Copy vertex to both Components

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

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 GBetweenness for each edge Disconnect graph at selected edge (E.g., (3,4 ))

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

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

32 What is a Highly Connected Subgraph? Requires the following definitions – Cut – Minimum Edge Cut (MinCut) – Edge Connectivity (EC) 32

33 Cut The set of edges whose removal disconnects a graph 33 6 6 5 5 4 4 7 7 3 3 2 2 1 1 0 0 8 8 6 6 5 5 4 4 7 7 3 3 2 2 1 1 0 0 8 8 6 6 5 5 4 4 7 7 3 3 2 2 1 1 0 0 8 8 Cut = {(0,1),(1,2),(1,3} Cut = {(3,5),(4,2)}

34 Minimum Cut 34 6 6 5 5 4 4 7 7 3 3 2 2 1 1 0 0 8 8 6 6 5 5 4 4 7 7 3 3 2 2 1 1 0 0 8 8 MinCut = {(3,5),(4,2)} The minimum set of edges whose removal disconnects a graph

35 Edge Connectivity (EC) Minimum NUMBER of edges that will disconnect a graph 35 6 6 5 5 4 4 7 7 3 3 2 2 1 1 0 0 8 8 MinCut = {(3,5),(4,2)} EC = | MinCut| = | {(3,5),(4,2)}| = 2 Edge Connectivity

36 Highly Connected Subgraph (HCS) A graph G =(V,E) is highly connected if EC(G)>V/2 36 6 6 5 5 4 4 7 7 3 3 2 2 1 1 0 0 8 8 EC(G) > V/2 2 > 9/2 G G is NOT a highly connected subgraph

37 HCS Clustering 37 6 6 5 5 4 4 7 7 3 3 2 2 1 1 0 0 8 8 Find the Minimum Cut MinCut (G) Given Input graph G (3,5),(4,2)} YES Return G NO 3 3 2 2 1 1 0 0 6 6 5 5 4 4 7 7 8 8 G1 G2 Divide G using MinCut Is EC(G)> V/2 Process Graph G1 Process Graph G2

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

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

40 What is a Clique? A subgraph C of graph G with edges between all pairs of nodes 40 6 6 5 5 4 4 7 7 8 8 Clique 6 6 5 5 7 7 G C

41 What is a Maximal Clique? 41 6 6 5 5 4 4 7 7 8 8 Clique Maximal Clique 6 6 5 5 7 7 6 6 5 5 7 7 8 8 A maximal clique is a clique that is not part of a larger clique.

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

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

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

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

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

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

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


Download ppt "Introduction to Graph Cluster Analysis. Outline Introduction to Cluster Analysis Types of Graph Cluster Analysis Algorithms for Graph Clustering  k-Spanning."

Similar presentations


Ads by Google