
v1 Inertia 는 가 커질수록 무조건 감소 → "엘보" 를 눈대중으로 찾아야 함. 실루엣 (Rousseeuw 1987) 은 한쪽으로 편향 안 된 정규화된 지표:
각 점 에 대해:
, 1 에 가까울수록 "자기 클러스터 내부에 잘 뭉쳐있고 다른 클러스터와 멀다".
Silhouette Score = 전체 점에 대한 평균.
Elbow 와 달리 를 실루엣 argmax 로 직접 선택 가능.
함수 silhouette_score(X, labels) 를 완성하세요.
X shape (N, D), labels shape (N,) 정수.float.D = ((X[:,None]-X[None,:])**2).sum(-1)**0.5 한 번 계산 후 마스킹.|C_i| = 1 인 점은 처리.| # | 이름 | 검증 |
|---|---|---|
| 1 | 반환 Python float | |
| 2 | 완전히 분리된 2 블롭 → s ≈ 1 | |
| 3 | 완전 혼합 (랜덤 라벨) → s ≈ 0 | |
| 4 | 단일 클러스터 (모두 같은 라벨 + 혼자 있는 점 혼재) 엣지 | |
| 5 | sklearn silhouette_score 와 일치 | |
| 6 | k 증가 시 적절한 k 가 최고 점수 받음 | |
| 7 | 값 범위 [-1, 1] |
코드를 작성하고 Run 을 눌러보세요.