우당탕탕 개발일지
[혼공머신] 6-2. K-평균 본문
💡 서론
이전에 k-fold classification이 나왔던 것처럼 이번에는 k-means clustering이다. k개의 그룹으로 만들고, 평균값을 이용해서 클러스터링을 진행한다.
💡 K-Means 클래스
sklearn.cluster 모듈 아래에 있는 KMeans 클래스로, k-mean clustering에 필요한 다양한 메서드와 매개변수, 그리고 결과를 나타내는 속성들이 있다.
이것들을 이용해서 k-means clustering을 진행하게 된다.
💡 K-Means 클래스
k-means clustering 알고리즘
이 과정을 계속 반복하는 비교적 단순한 알고리즘이다. 이 알고리즘을 구현하는 클래스가 KMeans 클래스!
이렇게 fit 메서드를 이용해서 k-평균 알고리즘으로 클러스터링을 진행하고, 속성들을 이용해서 결과를 확인할 수 있다.
책에서는 각 클러스터에 포함된 이미지를 출력하는 함수 draw_fruits()를 이용해서 사진을 출력하고 있다.
💡 K-Means 클래스
이 부분이 굉장히 신기했는데, k-means clustering도 결국 비지도 학습 알고리즘이기 때문에 k값을 뭘로 지정하는 것이 가장 좋은지도 모르는 상황이다.이 때 최적의 k값을 찾기 위해 대표적으로 엘보우 방법을 이용한다.
엘보우(elbow): 적절한 클러스터 개수를 찾기 위한 대표적인 방법
- 이너셔 감소하는 속도가 꺾이는 지점을 최적의 클러스터 개수라고 보는 방법
이너셔(inertia): 클러스터에 속한 샘플과 클러스터 중심 사이의 거리의 제곱합
- 클러스터에 속한 샘플이 얼마나 가깝게 모여있는지를 나타내는 값
- k값이 증가하면 클러스터에 속한 샘플의 개수가 줄어들기 때문에 거리의 제곱합인 이너셔(itertia)도 감소
- 이너셔가 감소하는 속도가 꺾이는 지점 = 클러스터 개수를 늘려도 클러스터에 잘 밀집된 정도가 크게 개선되지 않기 시작하는 지점 = 최적의 k값
실제로 주어진 데이터를 이용해서 이너셔 변화를 관찰한 결과 k = 3일 때 감소하는 속도가 꺾인다. 따라서 최적의 k값이 3인걸 알 수 있다.
'인공지능' 카테고리의 다른 글
[혼공머신] 6-3. 주성분 분석 (0) | 2025.02.04 |
---|---|
[혼공머신] 6-1. 군집 알고리즘 (0) | 2025.02.04 |
[혼공머신] 5-3. 트리의 앙상블 (0) | 2025.01.28 |
[혼공머신] 5-2. 교차 검증과 그리드 서치 (0) | 2025.01.28 |
[혼공머신] 5-1. 결정트리 (0) | 2025.01.24 |