K-평균 군집화를 이용한 비지도 학습

Beginner

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

소개

이 실습에서는 군집화, 널리 사용되는 비지도 머신 러닝 기법을 탐구합니다. 군집화는 레이블이 지정된 학습 데이터 없이, 데이터 포인트의 특징이나 속성을 기반으로 유사한 데이터 포인트를 그룹화하는 데 사용됩니다. 다양한 군집화 알고리즘이 있으며, 각 알고리즘은 고유한 강점과 약점을 가지고 있습니다. 이 실습에서는 k-평균 군집화 알고리즘에 중점을 둡니다.

VM 팁

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

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

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

필요한 라이브러리 가져오기

시작하기 전에 이 실습에 필요한 라이브러리를 가져옵니다.

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

샘플 데이터 생성

다음으로, 작업할 샘플 데이터를 생성합니다. sklearn.datasets 모듈의 make_blobs 함수를 사용하여 클러스터가 있는 합성 데이터 세트를 생성합니다.

## 샘플 데이터 생성
X, y = make_blobs(n_samples=100, centers=4, random_state=0, cluster_std=1.0)

데이터 시각화

생성된 데이터를 산점도를 사용하여 시각화해 보겠습니다.

## 데이터 포인트 플롯
plt.scatter(X[:, 0], X[:, 1])
plt.xlabel('특징 1')
plt.ylabel('특징 2')
plt.show()

K-평균 군집화 수행

이제 데이터에 k-평균 군집화 알고리즘을 적용해 보겠습니다.

## K-평균 군집화 수행
kmeans = KMeans(n_clusters=4)
kmeans.fit(X)

군집 시각화

k-평균 알고리즘으로 생성된 군집을 시각화해 보겠습니다.

## 각 데이터 포인트의 군집 레이블 가져오기
labels = kmeans.labels_

## 색상으로 군집을 구분하여 데이터 포인트 플롯
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.xlabel('특징 1')
plt.ylabel('특징 2')
plt.show()

군집 평가

군집 결과를 평가하기 위해 군집의 관성 (inertia) 을 계산할 수 있습니다. 관성은 샘플과 가장 가까운 군집 중심까지의 제곱 거리의 합을 나타냅니다.

## 군집의 관성 계산
inertia = kmeans.inertia_
print("Inertia:", inertia)

요약

이 실험에서는 k-평균 군집화 알고리즘을 탐색했습니다. 합성 데이터셋을 생성하고, 데이터에 k-평균 군집화를 수행하며, 결과 군집을 시각화했습니다. 또한, 군집 성능 척도로서 군집의 관성을 계산했습니다. 군집화는 레이블이 지정되지 않은 데이터에서 구조를 찾는 강력한 기술이며, 다양한 분야와 유형의 데이터에 적용될 수 있습니다.