Unsupervised Learning · 학습
이번에 배울 내용
군집 수와 스케일을 바꾸면 같은 자료의 묶음도 달라집니다. 군집 번호 자체에 의미를 부여하지 않고 구조를 읽습니다.
정답 없이 묶기
K-means는 정한 군집 수에서 중심과 표본의 거리를 줄입니다. 군집 번호는 임의의 이름이라 번호 자체보다 중심·분산·배정 구조를 봅니다.
거리의 단위
한 특징의 값 범위가 크면 그 특징이 거리를 지배할 수 있습니다. Standardization 전후와 군집 수를 비교하되, 관성값 감소만으로 의미 있는 군집을 얻었다고 판단하지 않습니다.
예제 출력 순서: Inertia → 평균 Silhouette.
- : 같은 군집 안의 평균 거리.
- : 가장 가까운 다른 군집까지의 평균 거리.
- Silhouette: , 범위 .
- 1에 가까움: 다른 군집과 잘 분리.
- 0 부근: 군집 경계에 가까움.
- 음수: 다른 군집에 더 가까운 표본.
평균값과 군집 그림을 함께 해석합니다.
풀이 예제
make_blobs(n_samples=180,centers=3,cluster_std=.8,random_state=7), 를 사용합니다.
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
X,_=make_blobs(n_samples=180,centers=3,cluster_std=.8,random_state=7)
model=KMeans(n_clusters=3,random_state=7,n_init=10).fit(X)
print(model.inertia_,silhouette_score(X,model.labels_))
218.32342403479697 0.8287785157574988