계층적 클러스터링의 클러스터 레이블

Python으로 배우는 Unsupervised Learning

Benjamin Wilson

Director of Research at lateral.io

계층적 클러스터링의 클러스터 레이블

  • 단순 시각화 도구가 아닙니다!
  • 중간 단계의 클러스터 레이블도 복원 가능
  • 예: 교차표 등에 활용

유로비전 계층적 클러스터링

Python으로 배우는 Unsupervised Learning

중간 클러스터링과 덴드로그램 높이

  • 예: 높이 15에서
    • 불가리아·키프로스·그리스는 하나의 클러스터
    • 러시아와 몰도바는 또 다른 클러스터
    • 아르메니아는 단독 클러스터

높이 15의 수평선으로 확대된 클러스터

Python으로 배우는 Unsupervised Learning

덴드로그램은 클러스터 간 거리를 보여줌

  • 덴드로그램의 높이 = 병합되는 클러스터 간 거리
  • 예: 키프로스-그리스만 있는 클러스터의 거리는 약 6

키프로스/그리스 클러스터가 강조된 확대도

Python으로 배우는 Unsupervised Learning

덴드로그램은 클러스터 간 거리를 보여줌

  • 덴드로그램의 높이 = 병합되는 클러스터 간 거리
  • 예: 키프로스-그리스만 있는 클러스터의 거리는 약 6
  • 이 새 클러스터는 불가리아 단독 클러스터와의 거리가 약 12

키프로스/그리스 클러스터와 키프로스/그리스/불가리아 클러스터가 강조된 확대도

Python으로 배우는 Unsupervised Learning

중간 클러스터링과 덴드로그램 높이

  • 덴드로그램의 높이 = 병합되는 클러스터 간 최대 거리
  • 이보다 멀면 병합하지 않음(예: 15)

높이 15의 수평선으로 확대된 클러스터

Python으로 배우는 Unsupervised Learning

클러스터 간 거리

  • "연결(linkage) 방법"으로 정의됨
  • "complete" 연결: 클러스터 간 거리는 두 샘플 간 최대 거리
  • 매개변수로 지정, 예: linkage(samples, method="complete")
  • 연결 방법이 달라지면 계층적 클러스터링도 달라짐!
Python으로 배우는 Unsupervised Learning

클러스터 레이블 추출

  • fcluster() 함수를 사용
  • NumPy 배열 형태의 클러스터 레이블을 반환

높이 15의 수평선으로 확대된 클러스터

Python으로 배우는 Unsupervised Learning

fcluster로 클러스터 레이블 추출

from scipy.cluster.hierarchy import linkage
mergings = linkage(samples, method='complete')
from scipy.cluster.hierarchy import fcluster

labels = fcluster(mergings, 15, criterion='distance') print(labels)
[ 9  8 11 20  2  1 17 14 ... ]
Python으로 배우는 Unsupervised Learning

국가명과 클러스터 레이블 정렬

문자열 리스트 country_names가 주어지면:

import pandas as pd
pairs = pd.DataFrame({'labels': labels, 'countries': country_names})
print(pairs.sort_values('labels'))
               countries  labels
5                Belarus       1
40               Ukraine       1
...
36                 Spain       5
8               Bulgaria       6
19                Greece       6
10                Cyprus       6
28               Moldova       7
...
Python으로 배우는 Unsupervised Learning

연습해 봅시다!

Python으로 배우는 Unsupervised Learning

Preparing Video For Download...