티스토리 뷰

머신러닝

[5] KMeans 알고리즘

up_one 2024. 5. 15. 20:36

머신러닝 카테고리의 이번 글은 비지도학습 알고리즘의 한 종류인 KMeans 알고리즘의 개념과 동작 원리에 대해 설명하겠습니다. KMeans 알고리즘은 label이 없는 데이터를 분류하는 알고리즘입니다.

 

KMeans 알고리즘은 label이 없는 데이터를 분류하기 때문에 knn 알고리즘처럼 정확한 분류를 하는 것은 불가능합니다. 따라서 비슷한 특성을 가진 데이터끼리 군집화를 해 분류하는 방법으로 데이터를 분류합니다. 

 

KMeans알고리즘 활용

 

KMeans 알고리즘의 대략적인 동작원리는 각 군집의 평균을 활용해 K개의 군집으로 묶은 후, 가깝게 위치하는 데이터를 비슷한 특성을 지닌 데이터로 여기고 같은 군집으로 만드는 것입니다. 

 

KMeans 알고리즘 동작원리 순서

  1. 군집의 개수, K값 정하기
  2. 랜덤으로 K개의 초기 중심점(Centroid) 설정하기
  3. 데이터와 중심점 간의 거리를 계산하여 거리가 가까운 것끼리 그룹화
  4. 군집 내의 데이터들의 평균으로 새로운 중심점(Centroid) 업데이트하기
  5. 군집이 같아질 때까지 3,4번 반복

 

KMeans 알고리즘의  K값은 성능의 큰 영향을 끼칩니다. 여러 가지 특성을 가지는 데이터를 어느 군집에 포함시키냐에 따라 정확도가 달라지기 때문입니다. 데이터와 중심점 간의 거리를 계산하는 방법은 KNN 알고리즘에서 거리를 구하는 방법들과 동일합니다. KMeans 알고리즘의 중요한 포인트는 새로운 중심점을 업데이트하는 방법을 군집 내의 데이터들의 평균으로 구한다는 것입니다.

Before update centroid
After update Centroid

 

군집 내 데이터들의 평균으로 새로운 중심점을 잡는 이유는 KMeans 알고리즘이 특성이 비슷한 데이터들을 하나의 군집으로 묶어주는 것이기 때문입니다. 

 

KMeans 알고리즘의 최적의 K값을 정하는 방법은 SSE의 Elbow Method를 활용하는 것입니다. SSE는 데이터와 중심점 간의 오차제곱합을 뜻합니다. 각각의 K값에 따른 SSE를 구한 후 그래프를 그려 선이 꺾이는 부분을 K값으로 설정하는 방법입니다. 그래프의 꺾이는 부분의 모습이 Elbow와 유사하다고 해 Elbow Method라 지칭합니다.

K값에 따른 SSE 그래프

 

KMeans 알고리즘은 분류를 간단하고 빠르게 할 수 있다는 장점이 있지만 데이터의 특성에 따라 분류를 하는 메커니즘이기에 데이터에 이상치가 포함되어 있다면 성능이 크게 떨어진다는 단점이 있습니다.

 

[Reference]

홍익대학교 컴퓨터공학과 기계학습심화 ppt

'머신러닝' 카테고리의 다른 글

[7] 앙상블 모델  (0) 2024.06.28
[6] 주성분 분석(PCA)  (0) 2024.05.17
[4] Support Vector Machine(SVM)  (0) 2024.05.12
[3] K 근접 이웃 알고리즘(knn)  (0) 2024.05.10
[2] 선형회귀  (0) 2024.05.05
TAG more
글 보관함
최근에 올라온 글