계층적 군집화
1. 개요
계층적 군집화는 개별 데이터 포인트를 점진적으로 병합하거나 전체 데이터 집합을 분할하여 데이터의 계층 구조를 형성하는 군집화 방법이다. 응집형 군집화는 가장 유사한 클러스터를 병합하는 상향식 방식이며, 분할형 군집화는 클러스터를 분할하는 하향식 방식이다. 클러스터 간의 거리를 정의하는 연결 기준에 따라 단일 연결, 완전 연결, 평균 연결 등 다양한 방식으로 군집화를 수행할 수 있으며, 계산 복잡도는 알고리즘에 따라 다르다. 계층적 군집화는 유클리드 거리와 덴드로그램을 활용하여 데이터를 시각화하고 분석하는 데 사용되며, 다양한 프로그래밍 언어와 소프트웨어에서 구현되어 활용된다.
-
클러스터 분석 알고리즘 -
기댓값 최대화 알고리즘
-
클러스터 분석 알고리즘 -
DBSCAN
DBSCAN은 밀도 기반 공간 클러스터링 알고리즘으로, 데이터 공간에서 밀도가 높은 영역을 클러스터로 식별하는 비지도 학습 방법이며, 핵심점, 직접 도달 가능점, 도달 가능점, 이상치라는 네 가지 기본 개념을 바탕으로 임의의 모양을 가진 클러스터를 찾을 수 있다는 장점이 있다.
2. 종류
계층적 군집화는 크게 두 가지 방식으로 나눌 수 있다: 응집형(agglomerative) 방식과 분할형(divisive) 방식이다.
* 응집형 (Agglomerative): 개별 데이터 포인트 각각을 하나의 클러스터로 간주하고 시작하여, 가장 유사한 클러스터들을 점진적으로 병합해 나가는 상향식(bottom-up) 접근법이다. 모든 데이터가 하나의 큰 클러스터에 속할 때까지 병합 과정을 반복한다.
* 분할형 (Divisive): 전체 데이터셋을 하나의 클러스터로 보고 시작하여, 특정 기준에 따라 점차 더 작은 클러스터들로 나누어 나가는 하향식(top-down) 접근법이다. 각 데이터 포인트가 개별 클러스터가 될 때까지 분할 과정을 반복한다.
2.1. 응집형 (Agglomerative)
--
응집형 방식은 개별 데이터 포인트(요소)에서 시작하여 가장 유사한 클러스터들을 점진적으로 병합해 나가는 상향식(bottom-up) 방법이다. 초기에는 각 데이터 포인트가 하나의 독립된 클러스터를 형성한다. 알고리즘은 반복적으로 가장 가까운 두 클러스터를 찾아 하나의 클러스터로 합치는 과정을 모든 데이터 포인트가 단일 클러스터에 속할 때까지 계속한다.
예를 들어, 위 그림의 데이터를 유클리드 거리를 거리 척도로 사용하여 군집화한다고 가정해 보자. 이 과정을 시각화한 것이 오른쪽의 덴드로그램이다. 덴드로그램을 특정 높이에서 가로로 자르면, 그 높이에 해당하는 군집 구조를 얻을 수 있다. 예를 들어, 덴드로그램의 위에서 두 번째 가로선(병합 단계) 이후에 자르면 {a}, {b c}, {d e}, {f}라는 4개의 군집이 생성된다. 세 번째 가로선 이후에 자르면 {a}, {b c}, {d e f}라는 3개의 군집이 생성되며, 이는 군집 수는 적지만 각 군집의 크기는 더 큰, 상대적으로 덜 세분화된 군집화 결과이다.
알고리즘의 첫 단계에서는 어떤 요소들을 먼저 병합할지 결정한다. 보통 미리 정의된 거리 척도에 따라 가장 가까운 두 요소를 선택하여 병합한다. 예를 들어, 위 예시에서는 요소 'b'와 'c'가 가장 가깝다고 가정하고 이 둘을 병합하여 {b, c}라는 새로운 클러스터를 만든다. 그러면 현재 클러스터는 {a}, {b, c}, {d}, {e}, {f}가 된다.
이 과정에서 거리 행렬을 미리 계산해 두면 효율적이다. 거리 행렬은 각 요소 쌍 사이의 거리를 저장한 행렬이다. 군집화가 진행되면서 클러스터들이 합쳐지면, 이 거리 행렬의 행과 열도 함께 병합되고 클러스터 간의 거리가 새롭게 계산되어 업데이트된다. 이는 응집형 군집화를 구현하는 일반적인 방식이며, 클러스터 간의 거리를 캐싱하여 계산 효율성을 높이는 장점이 있다. 간단한 응집형 군집화 알고리즘은 단일 연결 군집화 문서에 설명되어 있으며, 다양한 연결(linkage) 기준에 쉽게 적용될 수 있다.
다음 단계로 넘어가기 위해서는 새로 생성된 클러스터({b, c})와 다른 클러스터({a}, {d}, {e}, {f}) 간의 거리를 계산해야 한다. 따라서 두 클러스터 와 사이의 거리를 어떻게 정의할지가 중요하다. 일반적으로 사용되는 클러스터 간 거리 정의(연결 기준)는 다음과 같다.
* 최대 연결 (Complete-linkage clustering): 두 클러스터에 속한 모든 데이터 포인트 쌍 간의 거리 중 최댓값. 완전 연결 군집화라고도 한다.
:
* 최소 연결 (Single-linkage clustering): 두 클러스터에 속한 모든 데이터 포인트 쌍 간의 거리 중 최솟값. 단일 연결 군집화라고도 한다.
:
* 평균 연결 (Average-linkage clustering): 두 클러스터에 속한 모든 데이터 포인트 쌍 간의 거리의 평균값. UPGMA와 같은 방법에서 사용된다.
: