통계 실험실 차트
넘스탯 로고

넘스탯

DATA ANALYTICS & INSIGHTS

확률에서 LLM까지 – 데이터 사이언스 전문 교육 플랫폼

도움말

계층적 클러스터링 실습실

"밑에서 위로 점점 합쳐, 덴드로그램이 보여줘, 어디서 자를지 너 선택"

원하는 개념·랩·가이드를 검색해보세요

Ctrl K
🔽 Agglomerative — Bottom-up 병합 과정

모든 점을 각자 클러스터로 시작해, 가장 가까운 두 클러스터를 반복적으로 병합합니다. 결국 모든 점이 하나의 클러스터로 모일 때까지 진행합니다 — 이 모든 병합 이력이 덴드로그램입니다.

Agglomerative 클러스터링: bottom-up 단계별 병합Agglomerative 클러스터링: bottom-up 단계별 병합
✂️ 덴드로그램 컷팅 — 클러스터 수 결정

덴드로그램에서 특정 높이에서 수평선을 그어 가로지르는 가지 수가 클러스터 수입니다. "가장 긴 수직 거리(jump)"가 있는 곳에서 자르는 것이 일반적인 휴리스틱입니다.

덴드로그램을 자르는 높이가 클러스터 수를 결정덴드로그램을 자르는 높이가 클러스터 수를 결정
🌳 계층적 클러스터링 인터랙티브 — Agglomerative + Dendrogram

Linkage 방식을 바꾸고 자르는 높이(클러스터 수)를 조정하며 결과 변화를 비교하세요.

Linkage 방식
클러스터 수 K = 3 (자르는 높이 ≈ 1.14)
클러스터링 결과 (산점도)
덴드로그램 (병합 트리)
0.02.04.05.97.9Cut K=3
Linkage: WARD
클러스터 수: K = 3
Cut height ≈ 1.14
총 점 수: 18
📐 Linkage 4종 — 거리 정의가 결과를 바꾼다

두 클러스터 사이의 거리를 어떻게 정의하느냐에 따라 결과가 달라집니다.Single(최단), Complete(최장), Average(평균), Ward(분산 증가량 최소) — 일반적으로 Ward가 가장 안정적입니다.

4종 linkage의 덴드로그램과 클러스터링 결과 비교4종 linkage의 덴드로그램과 클러스터링 결과 비교
📏 거리 정의 시각화

각 linkage가 어떤 거리를 측정하는지 두 클러스터 A, B 예시로 확인합니다. Single은 한 쌍의 최단 거리, Complete는 최장 거리, Average는 모든 쌍의 평균, Ward는 병합 시 SSE 증가량을 최소화합니다.

Linkage별 두 클러스터 간 거리 정의Linkage별 두 클러스터 간 거리 정의
🔀 Agglomerative vs Divisive

계층적 클러스터링은 두 방향이 가능합니다. Agglomerative(bottom-up)는 점→클러스터→하나로 합쳐가고, Divisive(top-down)는 하나에서 출발해 분할합니다. 실무는 거의 항상 Agglomerative를 사용합니다.

계층적 클러스터링의 두 방향 — Agglomerative가 표준계층적 클러스터링의 두 방향 — Agglomerative가 표준
🧩 언제 어떤 Linkage를 쓸까?
Single (최단)

Elongated/chain 모양 클러스터 탐지. 단점: chaining 효과로 노이즈에 약함.

긴 모양
DNA 서열
Complete (최장)

컴팩트한 클러스터. 단점: outlier에 민감.

컴팩트
구형
Average

Single과 Complete의 절충안. 노이즈에 비교적 강건.

UPGMA
생물정보학
Ward — 실무 기본값

분산 증가량을 최소화 → K-means와 유사한 컴팩트 균형 클러스터. scikit-learn 기본.

기본값
균형
🔬 직접 해보기 — 실습 과제
  1. K 동적 조정: 슬라이더를 K=1→8로 옮기며 덴드로그램의 빨간 컷 라인이 위아래로 움직이는 것 관찰
  2. Linkage 비교: K=3 고정. Single → Complete → Average → Ward 순으로 바꿔보세요. Single은 elongated, Ward는 컴팩트한 형태
  3. 가장 긴 jump 찾기: 덴드로그램에서 수직선이 가장 긴 구간(jump가 큰 곳)이 자연스러운 컷 지점
  4. Single의 chaining: 점이 일렬로 나열된 데이터에서 Single은 모두 하나의 긴 클러스터로 잇기 쉬움
📖 더 깊이 학습하기
  • Ward (1963): "Hierarchical Grouping to Optimize an Objective Function" — Ward linkage 원논문
  • Hastie, Tibshirani, Friedman, ESL (2009) — Ch.14.3.12: 계층적 클러스터링 종합
  • Lance & Williams (1967): 일반화된 linkage 갱신 공식
  • scikit-learn 문서: sklearn.cluster.AgglomerativeClustering, scipy.cluster.hierarchy