군집을 찾는 알고리즘1 - Girvan-Newman algorithm

1. idea

 

군집을 찾는 대표적인 하향식 알고리즘으로 전체 그래프에서 시작하여 군집들이 서로 분리되도록 link를 순차적으로 제거함

 

서로 다른 군집을 연결하는 다리 역할을 하는 link를 먼저 제거해나가야 군집들이 분리 될 것이다.

 

etc-image-0
다리 역할을 하는 link를 제거해나가야 군집들이 서로 분리

 

 

2. betweenness centrality

 

그래프의 임의의 두 node의 최단 경로 위에 특정 link가 몇번이나 놓이는지 계산

 

etc-image-1
betweenness centrality를 구하는 방법

 

 

 

link A-B는 양 옆 4개의 node중 하나를 선택하여 만든 최단 경로에 모두 존재해야하므로 4*4=16가지가 있다.

 

따라서 그림을 보면 직관적으로 betweenness centrality가 높은 link는 두 군집을 연결하는 다리 역할을 할 가능성이 높다.

 

etc-image-2
빨간 선이 다리 역할을 하는 link이며 실제로 매개 중심성이 높다고 한다

 

 

3. algorithm

 

주어진 그래프에서 모든 link의 매개 중심성을 계산한다.

 

etc-image-3
예상대로 다리 역할을 하는 7번과 8번사이 매개 중심성이 가장 높다

 

 

그리고 가장 매개 중심성이 높은 link를 모두 제거한다.

 

그러니까 매개 중심성이 가장 높은 link가 여러개면 여러개 모두 제거하라는 말이다.

 

etc-image-4

 

 

다시 제거된 상황(위와 같은 상황)에서 매개 중심성을 다시 계산한다.

 

그리고 매개 중심성이 가장 높은 link를 모두 제거한다

 

etc-image-5

 

 

모든 link가 제거될 때까지 위와 같은 과정을 반복한다.

 

etc-image-6

 

 

 

4. optimization

 

link를 어느 정도 제거해야 최적으로 잘 찾은 군집이라고 할 수 있을까?

 

etc-image-7
granularity는 세분화된 정도?를 의미한다고 한다

 

 

당연하게도 군집성(modularity)이 최대가 되는 경우가 찾고자 하는 최적

 

Girvan-Newman algorithm을 수행하는 각 상황에서 주어진 그래프의 연결요소(connected component)를 군집으로 가정하고 군집성을 계산한다

 

군집성이 최대가 되는 지점의 요소들을 알고리즘이 끝나면 복원하여 그 때 연결요소들을 군집으로 간주한다

 

etc-image-8

 

 

제거되는 link에 따라 군집성을 계산하고

 

알고리즘이 끝나면 군집성이 최대가 되는 지점의 그래프들을 복원해서

 

연결요소들을 군집으로 간주함

 

etc-image-9

 

728x90