← 문제 목록/K-means 관성 (Inertia)

K-means 관성 (Inertia)

클러스터링 · easy

preview

K-means 관성 (Inertia / WCSS)

K-means(30번) 가 얼마나 잘 뭉쳤는지 를 수치로 표현. 각 점에서 자기 cluster centroid까지 거리 제곱합:

Inertia=i=1Nxiμci2\text{Inertia} = \sum_{i=1}^{N} \| \mathbf{x}_i - \boldsymbol{\mu}_{c_i} \|^2

μci\mu_{c_i} 는 점 ii 가 속한 cluster의 centroid.

엘보(elbow) 기법

k 를 늘릴수록 inertia 는 항상 감소합니다. 그래프가 급격히 꺾이는 지점이 "적절한 k" 추정값:

  • k=1 → 매우 큰 값
  • k=N → 0 (각 점이 자기 클러스터)
  • "무릎(elbow)" 이 있는 곳이 보통 좋은 k.

과제

함수 inertia(X, labels, centroids) 를 완성하세요.

  • 루프 없이 인덱싱 + 브로드캐스팅.
  • 반환: Python float.
  • 힌트: centroids[labels] 로 각 점의 할당된 centroid를 얻을 수 있음.

테스트 케이스

#이름검증
1완벽 (centroid = 점 자신)inertia = 0
2알려진 값작은 toy 예제 수치 일치
3k 증가 → inertia 감소같은 데이터에 k=2/k=3 비교
4sklearn inertia_ 일치무작위 데이터
5루프 없이for/while 금지
Loading...

코드를 작성하고 Run 을 눌러보세요.