통계 실험실 차트
넘스탯 로고
넘스탯
LEARN · SIMULATE · VERIFY

확률부터 LLM까지, 원리부터 제대로 배우는 자기주도 학습 플랫폼

로그인
학습 메뉴
도움말

계층적 클러스터링 실습실

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

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

Ctrl K
기계학습 이론으로상세 이론 학습

군집을 나무처럼 쌓아 올리는 방법

K-means는 군집 개수(K)를 미리 정해야 하지만, 계층적 클러스터링은 가까운 것끼리 차례로 묶어 나무(덴드로그램)를 만듭니다. 이 나무를 어느 높이에서 자르느냐로 군집 수를 나중에 정할 수 있죠. 직접 묶이는 과정을 관찰해 보세요.
이 페이지에서 배우고 나면
  • 가까운 데이터끼리 단계적으로 병합되는 과정을 직접 볼 수 있습니다.
  • 덴드로그램(나무 그림)을 읽고 어디서 자를지 판단할 수 있습니다.
  • K를 미리 정하지 않아도 되는 이유와 그 장단점을 이해할 수 있습니다.
🔽 Agglomerative — Bottom-up 병합 과정

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

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

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

덴드로그램을 자르는 높이가 클러스터 수를 결정덴드로그램을 자르는 높이가 클러스터 수를 결정
예측 먼저 — 실험 전에 답을 정해 보세요
예측 → 실험 → 확인

정답을 몰라도 괜찮습니다 — 먼저 예측을 정해야 시뮬레이션 결과가 기억에 남습니다. 예측을 고른 뒤 아래 시뮬레이션으로 직접 확인하고, 그다음 결과를 열어 보세요.

1. 계층적 군집화에서 "군집을 몇 개로 나눌지"는 언제 정할까요?
2. 군집 간 거리를 재는 기준(linkage: 최단/최장/평균 등)을 바꾸면 결과는?
로그인하면 예측 기록이 계정에 저장됩니다

어느 기기에서든 이어서 학습하고, 오답 기반 복습 추천을 받을 수 있습니다.

카카오로 시작하기네이버로 시작하기구글로 시작하기
회원가입 절차 없음 — 닉네임만 저장하며, 이메일·연락처는 수집하지 않습니다.
계층적 클러스터링 인터랙티브 — 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
실측 요약 — 이 실습이 보여주는 것

세 중심 (0,0)·(4,0.5)·(2,3.5) 주변에 6점씩 뿌린 18점(시드 고정)을 Single·Complete·Average·Ward 4가지 linkage로 밑에서부터 병합해 가는 실험입니다. 산점도와 덴드로그램이 나란히 놓이고, 자르는 높이(클러스터 수 K)를 슬라이더로 움직이면 빨간 컷 라인과 군집 색이 즉시 갱신됩니다.

  • 18점의 병합 역사는 17번의 이벤트로 완결되며, K=3 컷은 네 linkage 모두 원래 세 무리를 6·6·6으로 완벽 복원한다 — 다만 같은 K=3의 컷 높이는 Single 0.78, Average 1.02, Ward(근사) 1.14, Complete 1.44로 "두 무리 사이 거리"의 정의마다 다르다
  • Ward 기준 병합 거리의 실측 도약: 세 무리가 유지되는 마지막 병합까지는 거리 1.14 이하인데 그다음 병합(3무리→2무리)이 6.05, 마지막이 7.91로 5배 넘게 뛴다 — 덴드로그램에서 수직 구간이 가장 길게 벌어지는 곳이 자연스러운 K의 신호다
  • 병합 역사(덴드로그램)는 한 번 만들면 끝 — 같은 역사에서 컷 높이만 바꾸면 K=1~8 어떤 군집화든 재학습 없이 즉시 얻는다. K를 학습 전에 확정해야 하는 K-Means와의 결정적 차이

바로잡는 오개념: "군집 수는 학습 시작 전에 반드시 정해야 한다"는 생각 — 계층적 군집화는 병합의 전체 역사를 먼저 다 그려놓고, 사후에 덴드로그램을 자르는 높이로 K를 고른다. 어디서 자를지는 알고리즘이 아니라 사람의 선택이다.

AI 튜터에게 물어보기
베타

— 정답 대신 힌트로 유도합니다. 지금 화면의 실험 상태를 알고 답해요.

예: “방금 결과가 이론과 다른데 왜죠?”, “이 값을 올렸는데 왜 반대로 변하죠?”

AI 답변은 부정확할 수 있습니다. 핵심 개념은 반드시 시뮬레이션 실측으로 확인하세요. 질문 0/5 · 하루 질문 한도가 있습니다
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