[R언어] R 언어를 이용한 k-means 군집화 예제

군집화는 비지도 학습 알고리즘으로, 데이터를 여러 그룹이나 군집으로 나누는 과정을 말합니다. k-means는 가장 일반적으로 사용되는 군집화 알고리즘 중 하나로, 데이터를 k개의 군집으로 나누는 방식입니다.

데이터 준비

먼저, 군집화를 위한 데이터를 준비해야 합니다. 예를 들어, iris 데이터셋을 사용하여 꽃의 꽃잎과 꽃받침의 길이와 너비에 따라 군집을 형성해보겠습니다.

# 데이터 불러오기
data(iris)
iris_data <- iris[, -5]  # 군집화를 위해 꽃의 종류 제외

모델 구축

이제 k-means 모델을 구축하고 데이터를 군집화합니다.

# 모델 구축
set.seed(123)  # 랜덤 시드 설정
kmeans_model <- kmeans(iris_data, centers = 3, nstart = 20)  # 3개의 군집으로 모델 생성

# 군집화 결과
cluster_labels <- as.factor(kmeans_model$cluster)  # 군집 라벨 추출
iris_clustered <- cbind(iris_data, cluster = cluster_labels)  # 군집 라벨과 데이터 합치기

시각화

마지막으로, 군집화 결과를 시각화하여 확인할 수 있습니다.

# 시각화
library(ggplot2)
ggplot(iris_clustered, aes(x = Sepal.Length, y = Petal.Width, color = cluster_labels)) +
  geom_point(size = 3) +
  labs(title = "k-means Clustering of Iris Dataset", x = "Sepal Length", y = "Petal Width") +
  theme_minimal()

위의 예제 코드를 실행하면, iris 데이터셋을 이용하여 k-means 군집화를 시도하고 시각화된 결과를 확인할 수 있습니다.

참고 자료