k-평균 클러스터링 기초

Python으로 배우는 군집 분석

Shaumik Daityari

Business Analyst

왜 k-평균 클러스터링인가?

  • 계층적 클러스터링의 핵심 단점: 실행 시간
  • k-평균은 대규모 데이터셋에서 훨씬 빠름
Python으로 배우는 군집 분석

1단계: 클러스터 중심 생성

kmeans(obs, k_or_guess, iter, thresh, check_finite)
  • obs: 표준화된 관측값
  • k_or_guess: 클러스터 수
  • iter: 반복 횟수(기본값: 20)
  • thres: 임계값(기본값: 1e-05)
  • check_finite: 관측값이 유한한 수만 포함하는지 확인(기본값: True)

두 객체 반환: 클러스터 중심, 왜곡도

Python으로 배우는 군집 분석

왜곡도는 어떻게 계산되나?

Python으로 배우는 군집 분석

2단계: 클러스터 레이블 생성

vq(obs, code_book, check_finite=True)
  • obs: 표준화된 관측값
  • code_book: 클러스터 중심
  • check_finite: 관측값이 유한한 수만 포함하는지 확인(기본값: True)

두 객체 반환: 클러스터 레이블 목록, 왜곡도 목록

Python으로 배우는 군집 분석

왜곡도 참고 사항

  • kmeans는 단일 왜곡도 값을 반환
  • vq는 왜곡도 목록을 반환
Python으로 배우는 군집 분석

k-평균 실행하기

# Import kmeans and vq functions
from scipy.cluster.vq import kmeans, vq
# Generate cluster centers and labels
cluster_centers, _ = kmeans(df[['scaled_x', 'scaled_y']], 3)
df['cluster_labels'], _ = vq(df[['scaled_x', 'scaled_y']], cluster_centers)
# Plot clusters
sns.scatterplot(x='scaled_x', y='scaled_y', hue='cluster_labels', data=df)
plt.show()
Python으로 배우는 군집 분석

Python으로 배우는 군집 분석

다음: 연습 문제!

Python으로 배우는 군집 분석

Preparing Video For Download...