[R언어] K-means 군집화 알고리즘

K-means 군집화 알고리즘은 비지도 학습 기법 중 하나로, 주어진 데이터를 K개의 클러스터로 그룹화하는 알고리즘입니다. 각 클러스터는 중심(centroid)으로 표현되며, 각 데이터 포인트는 가장 가까운 클러스터의 중심에 할당됩니다.

알고리즘 개요

  1. 초기 중심점 설정: 처음에 K개의 중심점을 임의로 선택합니다.
  2. 할당 단계: 각 데이터 포인트를 가장 가까운 중심점에 할당합니다.
  3. 업데이트 단계: 각 클러스터의 중심을 해당 클러스터에 속한 데이터 포인트의 평균으로 업데이트합니다.
  4. 할당 및 업데이트 단계를 반복하며 중심점이 더 이상 변화하지 않을 때까지 반복합니다.

예시 코드

# 데이터 생성
set.seed(123)
data <- matrix(rnorm(100*2), ncol=2)

# K-means 군집화
kmeans_result <- kmeans(data, centers=3)

# 결과 확인
kmeans_result$cluster
plot(data, col=kmeans_result$cluster)
points(kmeans_result$centers, col=1:3, pch=8, cex=2)

위 R 코드는 임의의 2차원 데이터를 생성하고, K-means 군집화 알고리즘을 사용하여 데이터를 3개의 클러스터로 그룹화한 후 시각화하는 예시입니다.

결론

K-means 군집화 알고리즘은 간단하면서도 효과적인 알고리즘으로, 데이터 마이닝, 이미지 압축, 클러스터링 등 다양한 분야에서 활용됩니다.

참고 자료