[파이썬][scikit-learn] scikit-learn에서 k-평균 클러스터링

데이터를 클러스터로 그룹화하는 클러스터링은 머신러닝데이터 분석에서 중요한 작업입니다. 이를 위해 scikit-learn은 다양한 클러스터링 알고리즘을 제공합니다. 그 중 k-평균 클러스터링은 가장 일반적으로 사용되는 알고리즘 중 하나입니다. 이번에는 scikit-learn에서 k-평균 클러스터링을 어떻게 사용하는지 살펴보겠습니다.

1. 라이브러리 설치하기

먼저 scikit-learn 패키지를 설치해야 합니다. 아래의 명령어를 사용하여 설치할 수 있습니다.

!pip install scikit-learn

2. 데이터 준비하기

k-평균 클러스터링을 시도하기 전에 적절한 데이터를 준비해야 합니다. 예를 들어, 아래와 같은 2차원 데이터를 사용해 보겠습니다.

import numpy as np

# 2차원 데이터 생성
X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]])

3. 모델 만들기와 훈련하기

k-평균 클러스터링 모델을 만들기 위해 KMeans 클래스를 사용합니다. 모델을 생성하고 데이터를 훈련시키는 코드는 아래와 같습니다.

from sklearn.cluster import KMeans

# k-평균 클러스터링 모델 생성
kmeans = KMeans(n_clusters=2, random_state=0)

# 데이터 훈련
kmeans.fit(X)

4. 결과 확인하기

모델 학습이 완료되면 각 데이터 포인트가 어떤 클러스터에 속하는지 확인할 수 있습니다. 아래의 코드는 각 데이터 포인트에 대해 예측한 클러스터의 레이블을 출력하는 예제입니다.

labels = kmeans.labels_
print(labels)

결과는 아래와 같이 출력됩니다.

[1 1 1 0 0 0]

5. 시각화하기

마지막으로, 결과를 시각화하여 클러스터링 결과를 확인할 수 있습니다. 아래의 코드는 클러스터링 된 결과를 산점도로 시각화하는 예제입니다.

import matplotlib.pyplot as plt

# 클러스터링 결과 시각화
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.show()

위 코드를 실행하면, 아래와 같은 산점도 그래프가 출력됩니다.

K-means clustering result

이제 scikit-learn의 k-평균 클러스터링을 사용하여 데이터를 클러스터로 그룹화하는 방법을 알게 되었습니다. 이를 통해 데이터의 패턴을 파악하거나 비슷한 데이터들을 그룹화 할 수 있습니다. scikit-learn의 다른 클러스터링 알고리즘들도 살펴보며 데이터 분석 작업을 더욱 발전시켜 보세요!