레이블 데이터는 비교적 비싸고 가공하기 힘든 데이터이므로 대량생산하기 쉬운 데이터는 레이블 되어있지 않은 데이터
이런 점에서 비지도 학습이 실용적인 학습 방법이라고 볼 수 있다.
from sklearn.cluster import KMeans
군집에서 각 샘플의 label은 알고리즘이 샘플에 할당한 클러스터의 인덱스
kmeans.labels_
각 클러스터의 중심 (centroids)를 찾고 가장 가까운 클러스터에 샘플을 할당한다.
kmeans.cluster_centers_
visualization
보로노이 다이어그램 : 클러스터의 결정경계를 나타내고 센트로이드 표시
한계
클러스터의 크기가 많이 다르면 잘 작동하지 않음
소프트 군집 : 클러스터마다 샘플에 점수를 부여 --> 점수 : 샘플과 센트로이드 사이의 거리
kmeans.transform(X_new) \\\ 샘플과 각 센트로이드 사이 거리 반환
따라서 센트로이드 초기화에 따라 솔루션과 속도가 달라질 수 있음
kmeans.inertia_
#or
kmeans.score(X) #score() 메서드는 음수값 반환
from sklearn.cluster import MiniBatchKMeans
k값이 증가할수록 일반 k-means 알고리즘보다 훈련시간이 훨씬 단축되지만 이너셔는 일반적으로 조금 안좋음
from sklearn.metrics import silhouette_score
silhouette_score(X, kmeans.labels_)