본문 바로가기
Analysis

계층적 클러스터링: 데이터 구조의 체계적 탐색

by Pebble`s 2025. 3. 10.

계층적 클러스터링: 데이터 구조의 체계적 탐색

머신러닝의 비지도 학습 알고리즘 중에서 데이터의 계층 구조를 자연스럽게 파악할 수 있는 강력한 기법이 있습니다. 바로 '계층적 클러스터링(Hierarchical Clustering)'입니다. 이 방법은 데이터를 단순히 평면적으로 그룹화하는 것을 넘어, 데이터 간의 계층적 관계를 시각적으로 이해하기 쉽게 표현합니다. 오늘은 계층적 클러스터링의 개념, 작동 원리, 장단점 및 실제 활용 사례에 대해 알아보겠습니다.

 

계층적 클러스터링이란 무엇인가?

계층적 클러스터링은 데이터 포인트들 간의 유사성에 기반하여 계층적 구조로 데이터를 조직화하는 알고리즘입니다. 이 방법은 모든 데이터 포인트가 각각 하나의 클러스터인 상태에서 시작하여 점진적으로 가장 유사한 클러스터들을 병합하거나(상향식 접근법), 모든 데이터가 하나의 클러스터인 상태에서 시작하여 점진적으로 클러스터를 분할하는(하향식 접근법) 방식으로 작동합니다.

계층적 클러스터링의 결과는 일반적으로 '덴드로그램(Dendrogram)'이라는 트리 형태의 다이어그램으로 시각화됩니다. 이 덴드로그램은 데이터 포인트들이 어떻게 점진적으로 클러스터로 병합되는지 또는 분할되는지 보여주며, 다양한 수준에서 클러스터 구조를 관찰할 수 있게 합니다.

계층적 클러스터링의 주요 접근법

계층적 클러스터링에는 두 가지 주요 접근법이 있습니다:

1. 응집형 계층적 클러스터링(Agglomerative Hierarchical Clustering)

  • 상향식(Bottom-up) 접근법
  • 각 데이터 포인트가 개별 클러스터로 시작
  • 가장 유사한 클러스터 쌍을 반복적으로 병합
  • 최종적으로 모든 데이터 포인트가 하나의 클러스터에 속하게 됨
  • 가장 일반적으로 사용되는 계층적 클러스터링 방법

2. 분할형 계층적 클러스터링(Divisive Hierarchical Clustering)

  • 하향식(Top-down) 접근법
  • 모든 데이터 포인트가 하나의 클러스터로 시작
  • 반복적으로 클러스터를 두 개의 하위 클러스터로 분할
  • 각 데이터 포인트가 개별 클러스터가 될 때까지 계속
  • 계산 비용이 더 높아 실제로는 덜 사용됨

응집형 계층적 클러스터링의 작동 원리

가장 널리 사용되는 응집형 계층적 클러스터링의 알고리즘 단계는 다음과 같습니다:

1. 초기화 단계

  • 각 데이터 포인트를 개별 클러스터로 간주합니다.
  • 모든 클러스터 쌍 간의 거리(또는 유사도)를 계산하여 거리 행렬을 만듭니다.

2. 반복 단계

  • 거리 행렬에서 가장 가까운(가장 유사한) 두 클러스터를 찾습니다.
  • 이 두 클러스터를 병합하여 새로운 클러스터를 형성합니다.
  • 새로운 클러스터와 다른 모든 클러스터 간의 거리를 업데이트합니다.
  • 모든 데이터 포인트가 하나의 클러스터에 속하게 될 때까지 반복합니다.

3. 덴드로그램 생성

  • 클러스터 병합 과정을 트리 형태의 다이어그램으로 표현합니다.
  • 덴드로그램에서 높이는 두 클러스터가 병합되는 거리를 나타냅니다.

클러스터 간 거리 측정 방법

계층적 클러스터링에서 두 클러스터 간의 거리를 정의하는 방법은 알고리즘의 결과에 큰 영향을 미칩니다. 주요 연결 방법(linkage methods)은 다음과 같습니다:

1. 단일 연결법(Single Linkage)

  • 두 클러스터에서 가장 가까운 두 데이터 포인트 간의 거리를 클러스터 간 거리로 사용
  • 장점: 불규칙한 형태의 클러스터 발견 가능
  • 단점: 체인 효과(chaining effect)로 인해 노이즈에 민감

2. 완전 연결법(Complete Linkage)

  • 두 클러스터에서 가장 먼 두 데이터 포인트 간의 거리를 클러스터 간 거리로 사용
  • 장점: 조밀한 구형 클러스터 형성
  • 단점: 이상치에 매우 민감

3. 평균 연결법(Average Linkage)

  • 모든 데이터 포인트 쌍 간의 평균 거리를 클러스터 간 거리로 사용
  • 장점: 단일 연결법과 완전 연결법의 균형
  • 단점: 계산 비용이 더 높음

4. 와드 연결법(Ward's Linkage)

  • 두 클러스터를 병합할 때 발생하는 분산 증가를 최소화하는 방법
  • 장점: 크기가 비슷한 클러스터 생성, 노이즈에 상대적으로 강건
  • 단점: 구형 클러스터만 잘 찾음

5. 중심 연결법(Centroid Linkage)

  • 두 클러스터의 중심점 간의 거리를 클러스터 간 거리로 사용
  • 장점: 이상치에 덜 민감
  • 단점: 역전 현상(inversion)이 발생할 수 있음

계층적 클러스터링의 장점

1. 명확한 시각적 표현

  • 덴드로그램을 통해 데이터의 계층 구조를 직관적으로 이해할 수 있습니다.
  • 다양한 수준에서 클러스터링 결과를 관찰할 수 있습니다.

2. 클러스터 수 사전 지정 불필요

  • K-평균과 달리 클러스터 수(K)를 미리 지정할 필요가 없습니다.
  • 덴드로그램을 관찰하여 적절한 클러스터 수를 결정할 수 있습니다.

3. 계층적 구조 파악

  • 데이터의 자연스러운 계층 구조를 발견할 수 있습니다.
  • 다양한 수준의 그룹화를 한 번의 분석으로 얻을 수 있습니다.

4. 거리 측정 방법 유연성

  • 다양한 연결 방법을 선택하여 데이터 특성에 맞게 조정할 수 있습니다.
  • 다양한 거리 측정 방식(유클리드 거리, 맨하탄 거리 등)을 활용할 수 있습니다.

5. 결정적 결과

  • K-평균과 달리 실행할 때마다 동일한 결과를 얻을 수 있습니다(초기 조건에 의존하지 않음).

계층적 클러스터링의 한계

1. 계산 복잡성

  • 시간 복잡도가 O(n³)으로, 대규모 데이터셋에서는 계산 비용이 매우 높습니다.
  • 일반적으로 수만 개 이상의 데이터 포인트에는 적합하지 않습니다.

2. 메모리 요구량

  • 거리 행렬을 저장하기 위해 O(n²)의 메모리가 필요합니다.
  • 대용량 데이터셋에서는 메모리 부족 문제가 발생할 수 있습니다.

3. 한 번 병합된 클러스터 분할 불가

  • 응집형 방법에서는 한 번 병합된 클러스터가 다시 분할되지 않습니다.
  • 초기 단계의 잘못된 병합이 최종 결과에 영향을 미칠 수 있습니다.

4. 이상치에 민감

  • 특히 완전 연결법은 이상치에 매우 민감합니다.
  • 이상치가 있으면 클러스터 구조가 왜곡될 수 있습니다.

5. 스케일 의존성

  • 특성의 스케일에 민감하므로, 특성 간 스케일 차이가 클 경우 결과가 왜곡될 수 있습니다.
  • 데이터 전처리(정규화 또는 표준화)가 중요합니다.

계층적 클러스터링의 실제 응용 사례

1. 생물학적 분류

생물 분류학에서 계층적 클러스터링은 생물종 간의 유전적 유사성을 바탕으로 계통도를 구성하는 데 활용됩니다. 유전자 발현 데이터를 클러스터링하여 기능적으로 관련된 유전자 그룹을 식별하는 데도 사용됩니다.

2. 문서 및 텍스트 분석

문서 간의 유사성을 바탕으로 계층적 주제 구조를 발견하는 데 활용됩니다. 뉴스 기사, 학술 논문, 또는 고객 리뷰와 같은 텍스트 데이터의 구조화된 분류에 유용합니다.

3. 고객 세분화

소비자의 구매 패턴, 인구통계 정보, 행동 데이터를 바탕으로 고객을 계층적으로 세분화하여 마케팅 전략을 수립하는 데 활용됩니다. 상위 수준에서는 넓은 고객 그룹을, 하위 수준에서는 더 세분화된 그룹을 파악할 수 있습니다.

4. 이미지 분할 및 인식

이미지 처리에서 픽셀 간의 유사성을 바탕으로 이미지를 계층적으로 분할하는 데 사용됩니다. 의료 영상에서 조직 구조를 분석하거나, 위성 이미지에서 지형 특성을 파악하는 데 활용됩니다.

5. 사회 네트워크 분석

소셜 미디어나 인용 네트워크와 같은 사회적 연결 구조를 분석하여 커뮤니티의 계층적 구조를 파악하는 데 활용됩니다. 이를 통해 영향력 있는 그룹이나 정보 흐름의 패턴을 식별할 수 있습니다.

계층적 클러스터링 최적화 전략

1. 차원 축소 전처리

  • PCA, t-SNE 등을 통해 데이터 차원을 줄이면 계산 효율성이 향상됩니다.
  • 차원 축소는 노이즈를 줄이고 중요한 특성을 강조하는 효과도 있습니다.

2. 데이터 샘플링

  • 대규모 데이터셋에서는 대표 샘플을 추출하여 분석하고, 결과를 전체 데이터에 적용할 수 있습니다.
  • 랜덤 샘플링, 계층적 샘플링 등 다양한 방법을 활용할 수 있습니다.

3. 특성 스케일링

  • 모든 특성이 동일한 스케일을 갖도록 정규화하여 거리 계산의 편향을 방지합니다.
  • 표준화(Z-score), 최소-최대 정규화 등의 방법을 사용할 수 있습니다.

4. 최적 연결 방법 선택

  • 데이터 특성에 맞는 연결 방법을 선택하는 것이 중요합니다.
  • 다양한 연결 방법으로 결과를 비교하여 최적의 방법을 선택할 수 있습니다.

5. 이상치 처리

  • 분석 전에 이상치를 식별하고 처리하면 클러스터링 결과가 개선됩니다.
  • 이상치 제거, 변환, 또는 별도의 클러스터로 처리하는 방법을 고려할 수 있습니다.

계층적 클러스터링과 K-평균 클러스터링 비교

계층적 클러스터링과 K-평균 클러스터링은 각각 고유한 장단점을 가지고 있어, 상황에 따라 적절한 방법을 선택하는 것이 중요합니다:

장점 비교

  • 계층적 클러스터링: 클러스터 수 사전 지정 불필요, 명확한 시각적 표현, 계층 구조 파악, 결정적 결과
  • K-평균 클러스터링: 계산 효율성, 대규모 데이터셋에 적합, 직관적 이해 용이, 구현 간단

단점 비교

  • 계층적 클러스터링: 계산 복잡성, 대규모 데이터에 부적합, 한 번 병합된 클러스터 분할 불가
  • K-평균 클러스터링: 클러스터 수 사전 지정 필요, 초기 중심점 의존성, 구형 클러스터 가정

활용 시나리오

  • 계층적 클러스터링: 데이터 규모가 작고, 계층 구조 파악이 중요하며, 클러스터 수를 모를 때
  • K-평균 클러스터링: 데이터 규모가 크고, 계산 효율성이 중요하며, 클러스터 수에 대한 사전 지식이 있을 때

결론: 데이터 구조의 깊이 있는 탐색

계층적 클러스터링은 데이터의 내재된 계층 구조를 파악하는 강력한 도구입니다. 비록 계산 비용이 높아 대규모 데이터셋에는 제한적이지만, 작은 규모나 중간 규모의 데이터셋에서는 데이터의 구조적 특성을 심층적으로 이해하는 데 탁월한 방법입니다.

특히 덴드로그램이라는 시각적 표현은 데이터 과학자나 도메인 전문가에게 데이터의 자연스러운 그룹화와 계층 관계를 직관적으로 이해할 수 있는 기회를 제공합니다. 이는 K-평균과 같은 다른 클러스터링 알고리즘에서는 얻기 어려운 통찰력입니다.

최신 알고리즘과 컴퓨팅 기술의 발전으로 계층적 클러스터링의 계산 효율성을 개선하는 다양한 변형 알고리즘(예: BIRCH, CURE 등)도 개발되고 있습니다. 이러한 발전은 계층적 클러스터링의 활용 범위를 더욱 확장하고 있습니다.

결국, 계층적 클러스터링은 단순히 데이터를 그룹화하는 것을 넘어, 데이터의 구조적 관계와 패턴을 깊이 있게 탐색하고자 할 때 탁월한 선택입니다. 특히 생물학적 분류, 문서 구조 분석, 소셜 네트워크 이해와 같이 자연스러운 계층 구조를 가진 도메인에서 그 가치가 더욱 빛납니다.