파이썬으로 K-Means 군집화 탐색

Beginner

This tutorial is from open-source community. Access the source code

소개

이 실습에서는 K-Means 군집화 알고리즘과 scikit-learn 라이브러리를 사용한 파이썬 구현을 살펴볼 것입니다. 군집화는 데이터 포인트를 유사성을 기반으로 그룹으로 묶는 비지도 학습의 한 유형입니다. K-Means 군집화는 이미지 처리, 생물정보학 및 마케팅 연구와 같은 다양한 분야에서 널리 사용되는 인기 있는 군집화 알고리즘입니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 연습을 위한 Jupyter Notebook에 접근할 수 있습니다.

때때로 Jupyter Notebook 이 완전히 로드되기까지 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사를 자동화할 수 없습니다.

학습 중 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.

라이브러리 가져오기

먼저, 이 실습에 필요한 라이브러리를 가져와야 합니다. NumPy, Matplotlib, 그리고 scikit-learn 을 사용할 것입니다.

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn import datasets

데이터 로드

다음으로, 머신 러닝에서 널리 사용되는 아이리스 (iris) 데이터셋을 로드할 것입니다. 이 데이터셋은 서로 다른 종류의 아이리스 꽃의 특징에 대한 정보를 포함하고 있습니다. 이 데이터셋을 사용하여 K-Means 군집화 알고리즘을 보여줄 것입니다.

iris = datasets.load_iris()
X = iris.data
y = iris.target

데이터 시각화

K-Means 군집화 알고리즘을 적용하기 전에 데이터를 시각화하여 더 잘 이해하는 것이 좋습니다. 3 차원 산점도를 사용하여 데이터를 시각화할 것입니다.

fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection="3d")
ax.scatter(X[:, 0], X[:, 1], X[:, 2])
ax.set_xlabel("꽃받침 길이")
ax.set_ylabel("꽃받침 폭")
ax.set_zlabel("꽃잎 길이")
plt.show()

K-Means 군집화 적용

이제 데이터에 K-Means 군집화 알고리즘을 적용할 것입니다. 알고리즘을 3 개의 클러스터로 초기화하고 데이터에 맞출 것입니다.

kmeans = KMeans(n_clusters=3)
kmeans.fit(X)

클러스터 시각화

K-Means 군집화 알고리즘을 적용한 후, 생성된 클러스터를 시각화해 보겠습니다. 3 차원 산점도를 사용하여 데이터 포인트와 해당 클러스터를 시각화할 것입니다.

fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection="3d")
ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=kmeans.labels_)
ax.set_xlabel("꽃받침 길이")
ax.set_ylabel("꽃받침 폭")
ax.set_zlabel("꽃잎 길이")
plt.show()

군집화 평가

K-Means 군집화 알고리즘의 성능을 평가하기 위해 관성 (Inertia) 점수를 계산할 수 있습니다. 관성 점수는 각 데이터 포인트와 할당된 클러스터 중심 사이의 거리의 합을 측정합니다. 관성 점수가 낮을수록 군집화가 더 좋습니다.

print("Inertia Score:", kmeans.inertia_)

요약

이 실습에서는 K-Means 군집화 알고리즘과 scikit-learn 라이브러리를 사용한 파이썬 구현에 대해 배웠습니다. 아이리스 데이터셋을 로드하고, 데이터를 시각화하고, K-Means 군집화 알고리즘을 적용하고, 성능을 평가했습니다. 군집화는 데이터 분석을 위한 강력한 기술이며 다양한 응용 분야에 사용될 수 있습니다.