[python] scikit-learn을 활용한 군집화 시각화

Scikit-learn은 파이썬에서 머신러닝과 데이터 분석을 위한 인기 있는 라이브러리입니다. 이번에는 Scikit-learn을 사용하여 군집화(Clustering) 알고리즘의 결과를 시각화해보겠습니다.

1. Scikit-learn을 이용한 군집화

Scikit-learn은 다양한 군집화 알고리즘을 제공합니다. 여기서는 K-Means 알고리즘을 사용해보도록 하겠습니다. K-Means 알고리즘은 주어진 데이터를 K개의 클러스터로 묶는 알고리즘으로, 데이터의 유사성을 바탕으로 클러스터를 형성합니다.

다음은 Scikit-learn에서 K-Means 알고리즘을 사용하는 예제입니다.

from sklearn.cluster import KMeans

# 데이터 준비
X = [[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]]
y = [0, 0, 0, 1, 1, 1]

# K-Means 모델 생성
kmeans = KMeans(n_clusters=2)

# 모델 학습
kmeans.fit(X)

# 클러스터링 결과
labels = kmeans.labels_

# 중심점 좌표
centroids = kmeans.cluster_centers_

위 예제에서는 2개의 클러스터를 형성하도록 K-Means 알고리즘을 설정하였습니다. 데이터를 학습하고, 각 데이터 포인트에 대해 클러스터 레이블을 확인할 수 있습니다.

2. 군집화 결과 시각화

군집화의 결과를 시각화하여 데이터의 패턴을 파악할 수 있습니다. Matplotlib는 데이터 시각화를 위한 파이썬 라이브러리로, Scikit-learn과 함께 많이 사용됩니다.

import matplotlib.pyplot as plt

# 군집화 결과 시각화
colors = ['r', 'g', 'b', 'c', 'm', 'y']

for i, label in enumerate(labels):
    plt.scatter(X[i][0], X[i][1], color=colors[label])

# 중심점 시각화
for centroid in centroids:
    plt.scatter(centroid[0], centroid[1], color='black', marker='x', s=100)

plt.show()

위 코드는 군집화 결과를 산점도로 시각화하는 예제입니다. 각 데이터 포인트는 클러스터 레이블에 따라 색상이 지정되고, 중심점은 검은색 X로 표시됩니다.

3. 결론

Scikit-learn을 활용하여 군집화 알고리즘의 결과를 시각화하는 방법을 알아보았습니다. 군집화 결과를 시각화함으로써 데이터의 패턴을 더욱 뚜렷하게 파악할 수 있습니다. 예제 코드를 통해 실제 데이터에 군집화 알고리즘을 적용하고 시각화하는 경험을 쌓아보세요.

참고 자료