계층적 군집화 기초

Python으로 배우는 군집 분석

Shaumik Daityari

Business Analyst

linkage로 거리 행렬 생성

scipy.cluster.hierarchy.linkage(observations, 
                                method='single', 
                                metric='euclidean', 
                                optimal_ordering=False
)
  • method: 군집 간 근접도 계산 방식
  • metric: 거리 척도
  • optimal_ordering: 데이터 포인트 정렬 여부
Python으로 배우는 군집 분석

어떤 방법을 써야 할까요?

  • 'single': 가장 가까운 두 객체 기반
  • 'complete': 가장 먼 두 객체 기반
  • 'average': 모든 객체의 산술평균 기반
  • 'centroid': 모든 객체의 기하평균 기반
  • 'median': 모든 객체의 중앙값 기반
  • 'ward': 제곱합 최소화 기반
Python으로 배우는 군집 분석

fcluster로 군집 레이블 생성

scipy.cluster.hierarchy.fcluster(distance_matrix, 
                                 num_clusters,
                                 criterion
)
  • distance_matrix: linkage()의 출력
  • num_clusters: 군집 수
  • criterion: 군집 형성 임계값 결정 기준
Python으로 배우는 군집 분석

Ward 방식의 계층적 군집화

Python으로 배우는 군집 분석

Single 방식의 계층적 군집화

Python으로 배우는 군집 분석

Complete 방식의 계층적 군집화

Python으로 배우는 군집 분석

방법 선택에 대한 마무리

  • 모든 상황에 맞는 단 한 가지 방법은 없음
  • 데이터 분포를 신중히 파악해야 함
Python으로 배우는 군집 분석

연습해 봅시다

Python으로 배우는 군집 분석

Preparing Video For Download...