[Home] AI로 돌아가기
🔗 관련 문서:
Wikipedia - K-means clustering
K-means (Clustering Algorithm)
K-means는 데이터를 K개의 군집으로 나누는 대표적인 비지도 학습 알고리즘이다. 각 데이터는 중심점(centroid)과의 거리 기준으로 가장 가까운 클러스터에 할당되며, 이 과정을 반복적으로 수행하여 중심점과 군집을 갱신한다.
군집 수(K)는 사전에 정해야 하며, 알고리즘은 중심점이 더 이상 이동하지 않을 때까지 반복된다.
(1) 정의와 특징
K-means는 주어진 데이터를 K개의 군집으로 나누기 위해, 각 데이터를 가장 가까운 중심점에 할당하고, 군집 내 평균을 새 중심점으로 갱신하는 방식으로 동작한다.
주요 특징은 다음과 같다:
- 비지도 학습 방식의 클러스터링 알고리즘이다.
- 거리 기반(metric)으로 군집을 분류한다.
- 초기 중심점 선택에 따라 결과가 달라질 수 있다.
(2) 알고리즘 과정
- 데이터에서 임의로 K개의 초기 중심점을 선택한다.
- 각 데이터를 가장 가까운 중심점에 할당한다.
- 각 군집의 평균을 계산하여 새로운 중심점으로 설정한다.
- 중심점이 더 이상 이동하지 않을 때까지 2~3단계를 반복한다.
(3) 장점과 한계
장점
- 구현이 간단하고 계산 속도가 빠르다.
- 대규모 데이터에도 적용 가능하다.
한계
- K 값을 사전에 지정해야 한다.
- 초기값 민감도가 크다.
- 비구형 분포의 데이터에는 적합하지 않을 수 있다.
(4) 개념도
다음은 K-means 알고리즘이 수렴하는 과정을 시각적으로 나타낸 개념도이다.
그림 1. K-means 알고리즘의 반복적 수렴 과정
출처: Wikimedia Commons