티스토리 뷰

kmeans 알고리즘에서 클러스터의 개수를 구하는건 가장 중요한 일이다.

 

이를 구하기 위해 먼저 알아야할 건 이너셔(inertia)이다.

이는 클러스터에 속한 샘플들이 얼마나 밀접하게 모여있나를 나타내는 값이다.

클러스터의 개수가 늘어나면 클러스터들의 크기는 줄어들 것이고, 이너셔도 줄어든다.

결국 이너셔의 값이 크게크게 줄어들다 변화의 폭이 크게 줄어드는 부분을 k값으로 하면 된다.

이를 엘보우 방법이라고 한다.

 

#이번엔 우리가 3개의 클래스로 나눌걸 알고 n_cluster를 3으로 설정했다. 모르고 해야할 때 최적의 k를 찾는 방법을 알아보자.
#클러스터 중심과 클러스터에 속한 샘플 사이의 거리의 제곱 합을 이너셔라고한다.

from sklearn.cluster import KMeans

inertia=[]

for k in range(2,7):
    km = KMeans(n_clusters=k, random_state=42)
    km.fit(fruits_2d) #fruits_2d 데이터를 가지고 훈련하라
    inertia.append(km.inertia_)  #inertia_ 속성으로 조회
    
plt.plot(range(2,7),inertia)
plt.xlabel('k')
plt.ylabel('inertia')
plt.show()

'머신러닝 > 혼자공부하는머신러닝' 카테고리의 다른 글

확률적 경사 하강법  (0) 2022.09.06
proba, 로지스틱 회귀  (0) 2022.08.25
pandas csv read, 다중 선형 회귀  (0) 2022.08.23
혼공머_3  (0) 2022.08.23
혼공머_2  (0) 2022.08.19
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함