[파이썬] 파이썬을 이용한 데이터 군집화 샘플 프로젝트

데이터 군집화는 비슷한 특성을 가진 데이터들을 그룹으로 묶는 기술입니다. 이는 데이터 분석, 패턴 인식 및 예측 모델 생성 등 다양한 분야에서 사용됩니다. 이번 프로젝트에서는 파이썬을 이용하여 데이터 군집화를 수행하는 샘플 프로젝트를 만들어보겠습니다.

요구사항

데이터 준비

데이터 군집화를 위해 적절한 데이터셋을 사용해야 합니다. 이 예제에서는 scikit-learn 라이브러리에서 제공하는 make_blobs 함수를 사용하여 가상의 분포를 가진 데이터셋을 생성하겠습니다.

from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

# 데이터셋 생성
X, y = make_blobs(n_samples=100, centers=3, random_state=42)

# 데이터 시각화
plt.scatter(X[:, 0], X[:, 1])
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()

위 코드를 실행하면, 2차원 데이터셋이 시각화됩니다.

데이터 군집화

이제 데이터를 군집화하는 과정을 살펴보겠습니다. 이를 위해 scikit-learn 라이브러리에서 제공하는 KMeans 클래스를 사용하겠습니다.

from sklearn.cluster import KMeans

# KMeans 모델 생성
kmeans = KMeans(n_clusters=3, random_state=42)

# 모델 학습
kmeans.fit(X)

# 군집화 결과
labels = kmeans.predict(X)
centroids = kmeans.cluster_centers_

위 코드를 실행하면, 데이터가 3개의 군집으로 나뉘는 군집화 결과를 얻을 수 있습니다. labels는 각 데이터 포인트가 속한 군집의 인덱스를 나타내고, centroids는 각 군집의 중심점 좌표를 나타냅니다.

결과 시각화

마지막으로 군집화 결과를 시각화하여 확인해보겠습니다.

# 군집별로 데이터 시각화
for i in range(3):
    plt.scatter(X[labels==i, 0], X[labels==i, 1])

# 중심점 시각화
plt.scatter(centroids[:, 0], centroids[:, 1], color='red', marker='x', s=100, label='Centroids')

plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.legend()
plt.show()

위 코드를 실행하면, 군집화된 데이터와 각 군집의 중심점을 시각화할 수 있습니다.

결론

이번 프로젝트에서는 파이썬과 scikit-learn 라이브러리를 이용하여 데이터 군집화 샘플 프로젝트를 만들어보았습니다. 데이터의 군집화 결과를 통해 비슷한 특성을 가진 데이터들을 그룹으로 묶을 수 있습니다. 데이터 군집화는 다양한 실제 문제에 적용될 수 있으며, 데이터 분석 및 패턴 인식과 같은 분야에서 유용하게 활용될 수 있습니다.

더 많은 정보와 예제 코드는 scikit-learn 공식 문서를 참고하시기 바랍니다. Happy coding!