01. 2분 안에 말하기

K-means 클러스터링은 K개의 Centroid를 기반으로 K개의 클러스터를 만들어주는 것을 의미합니다. 이때 클러스터링이란 어떤 데이터들이 주어졌을 때, 그 데이터들을 클러스터로 그루핑 시켜주는 것을 의미하며 이때 각 클러스터의 중심은 Centroid이며 한 클러스터의 mean값이 됩니다. 즉 K-means Clustering의 목적은 유사한 데이터 포인트끼리 그룹화하는 것입니다.

k_mean 클러스터링 방법론은 클러스터의 개수와 초기 Centroid값을 결정하는 초기화 단계와 데이터 포인트들과 Centroid들 간 유클리드 거리를 계산하며 Centroid들의 위치를 계속 수정하는 학습 단계로 나뉩니다. 학습은 Centroid값(군집의 중심)이동이 없을 때까지 계속되며 학습이 완료되면 새로운 데이터에 적용해 학습에 사용되지 않은 데이터 포인트들에 대해서도 학습된 모델을 적용하여 어떤 군집에 속하는지 확인하는 과정을 거칩니다.

k_mean 클러스터링 방법론은 직관적이고 구현이 쉬우며, 대용량 데이터에 적용이 가능하고 수렴성이 보장된다는 장점이 있습니다. 반면에 초기값에 민감하고 이상치에 영향을 받으며 그룹내 분산구조를 반영할 수 없고 차원의 저주에 걸릴 수 있다는 단점이 존재합니다.

02. 추가 학습 포인트

  1. 초기화 단계 -초기화 과정에서 정해지는 k와 Centroid값은 알고리즘 수행결과에 큰 영향을 미칩니다. -k값은 이너셔 값을 통해 결정하는 게 일반적입니다. Cenroid값은 Random Partition, Forgy 방법 등 다양한 방식이 있으며, sklearn.cluster.KMeans 모듈에서는 클러스터 간 거리를 최대한 떨어뜨리는 k-means++ 방법이 디폴트로 설정되어 있습니다.

초기화 과정을 통해 군집 수(k)를 3으로 정하고 랜덤하게 군집 중심(Centroid)들을 배치한 모습 (x로 표시)

[](<https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCnstJ%2Fbtq6SmweRFn%2Fb8D8Gut2LRl0K5cBSNT7Lk%2Fimg.png>)
  1. 학습 단계 -각각의 데이터 포인트와 Centroid 간 거리를 계산한 후 가장 짧은 거리의 Centroid로 데이터 포인트를 할당합니다.

모든 데이터 포인트들을 가까운 클러스터에 할당

[](<https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc843hm%2Fbtq6U9bXzSI%2FuFS7vV9S8BiVpCxoHtjbp0%2Fimg.png>)

Centroid 위치를 새롭게 배정된 데이터 포인트들의 평균 값으로 변경-위 작업을 Centroid들이 더 이상 움직이지 않을 때까지 반복합니다.

Centroid 위치가 변경되지 않을 때까지 학습을 완료한 결과

실루엣계수https://studying-haeung.tistory.com/10https://studying-haeung.tistory.com/13

이너셔(Inertia),Elbowhttps://peaco.tistory.com/28

Hard Clustering이란 데이터들의 그룹이 중심에 가까운 점에 무조건적으로 할당하는 군집화라는 뜻입니다.

11.jpg

왼쪽의 경우 검은점은 빨간 그룹이라고 강하게 말할 수 있습니다. 따라서 검은점을 빨간 그룹에 할당하는 것이 당연합니다.

하지만 오른쪽은 빨간쪽에 가깝다고 하지만 파란쪽 중심으로 부터 생선된 데이터가 아니라고 하기에는 무리가 있습니다.