Skip to content

Latest commit

 

History

History
34 lines (31 loc) · 2.36 KB

6-2_k-평균_김지원.md

File metadata and controls

34 lines (31 loc) · 2.36 KB

K-평균

: 평균값을 자동으로 찾아주는 군집알고리즘

  • 클러스터 중심(센트로이드): k-평균 알고이즘이 만든 클러스터에 속한 샘플의 특성 평균값, 가장 가까운 클러스터 중심을 샘플의 또다른 특성으로 사용하거나 새로운 샘플에 대한 예측으로 활용
  • 작동방식:
    1. 무작위로 k개의 클러스터 중심 정함
    2. 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터의 샘플로 지정
    3. 클러스터에 속한 샘플의 평균값으로 클러스터 중심을 변경
    4. 클러스터 중심에 변화가 없을때까지 2번으로 돌아가 반복

KMeans 클래스

  • 매개변수 n_clusters: 클러스터 개수 지정
from sklearn.cluster import KMeans
km = KMeans(n_cluster = 3, random_state = 42)
km.fit(fruits_2d)
  • labels_: 군집결과 저장됨, 이 배열은 각 샘플이 어떤 레이블에 해당되는지 나타냄
  • draw_fruits( ): 각 클러스터가 어떤 이미지를 나타냈는지 그림으로 출력
  • km.labels_==0: km.labels_ 배열에서 값이 0인 위치는 True, 그외는 모두 False가 됨 => 불리언 인덱싱
  • cluster_centers_: 최종적으로 찾은 클러스터 중심이 저장된 곳
  • trnasform( ): 훈련 데이터샘플에서 클러스터 중심까지 거리로 변환해주는 메서드
  • predict: 가장 가까운 클러스터 중심을 예측 클래스로 출력
  • n_iter_: 알고리즘이 반복한 횟수가 저장됨

엘보우 방법

  • 실전에서는 몇개의 클러스터가 있는지 알 수 없기 때문에 몇가지 방법을 사용해 최적의 k를 찾을 수 있는데 그중 대표적인 방법
  • 클러스터 개수를 늘려가며 이너셔의 변화를 관찰해 최적의 클러스터 개수를 찾는 방법
  • 클러스터 개수를 증가시키며 이너셔를 그리면 감소하는 속도가 꺾이는 지점이 있음 -> 해당 지점부터는 클러스터 수를 늘려도 밀집정도가 크게 개선되지 않음 = 최적의 클러스터 개수

이너셔

  • 클러스터 중심과 클러스터에 속한 샘플 사이 거리의 제곱합
  • 클러스터에 속한 샘플이 얼마나 가깝게 모여있는지 나타내는 값
  • 일반적으로 클러스터 개수가 늘어나면 클러스터 개개의 크기는 줄어들어 이너셔도 줄어듦
  • inertia_: 이너셔 값