K-means++ 클러스터링 결과와 K-means 결과의 차이

2024. 10. 7. 15:15프로젝트/빵맛집 추천서비스 웹배포

 

from sklearn.cluster import KMeans
model = KMeans(init='random', n_clusters=6, random_state=0)

 

KMeans 클래스에서 init 파라미터의 기본값은 'k-means++'로 설정되어 있다. 그렇기에 Kmeans 초기화 방법을 사용하기 위해서는 init='random' 파라미터를 추가해야 한다.

 

init='random': 무작위로 클러스터 중심을 초기화한다.

init='k-means++': 클러스터 중심을 멀리 떨어뜨려서 초기화하여 수렴 속도를 높이고 결과 품질을 향상시킨다.

 

기존의 K-means 알고리즘의 문제점은 다음과 같다.

 

[인공지능][개념] K-Means 알고리즘의 문제점과 'K-Means++ 클러스터링'을 통해 개선하기

K-평균(K-Means)에 대한 이론이 필요하신 분들은 아래 링크를 참조해주시기 바랍니다. [인공지능][개념] K-평균(K-means) 알고리즘과 군집화(Clustering) + 이너셔(Inertia) 이해하기 : https://itstory1592.tistory.co

itstory1592.tistory.com

 

초기화 방법에 따라서 실제로 결괏값이 얼마나 다른지 확인해봤다.

 

K-MEANS++
K-MEANS

 

실제로 어떤 데이터를 담고 있는지도 파악해볼 필요가 있지만, 해당 프로젝트 목적을 생각했을 때 데이터가 비교적 고르게 분포되어 있으면서 '맛집'이 확실하게 구분되는 것이 K-means++ 클러스터링임을 알 수 있었다.

 

아래 글을 참고해서 K-means 알고리즘 전반의 내용을 이해해보자.

 

[ 핸즈 온 머신러닝 2 ] 비지도 학습의 모든 것 (K-Means)

약해지지 말자. - 래리 페이지 (구글 공동창립자) - 시작하며 이전 포스팅에서는 대부분 레이블($y$)이 존재하는 데이터에 대해 다뤄봤습니다. 하지만 우리가 사용하는 대부분의 데이터는 레이블

box-world.tistory.com

 

[인공지능][개념] K-평균(K-means) 알고리즘과 군집화(Clustering) + 이너셔(Inertia) 이해하기

K-평균 (K-means) K-평균(K-means) 알고리즘은 데이터를 k개의 클러스터로 묶는 알고리즘이다. K-평균 알고리즘의 목적은 각 클러스터와의 거리 차이 분산을 최소화하여 데이터를 분류(Classification)하는

itstory1592.tistory.com