Scikit-learn 을 이용한 K-Means++ 클러스터링

Beginner

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

소개

이 실습에서는 Python 의 scikit-learn 라이브러리를 사용하여 K-Means++ 초기화 방법을 배웁니다. K-Means++ 는 데이터를 유사성 기반으로 그룹으로 클러스터링하는 인기 있는 알고리즘입니다. k-means 의 기본 초기화 방법으로 사용됩니다. 이 실습에서는 샘플 데이터를 생성하고, k-means++ 에서 시드를 계산하며, 샘플 데이터와 함께 초기 시드를 플롯합니다.

VM 팁

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

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

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

샘플 데이터 생성

scikit-learn 라이브러리의 make_blobs 함수를 사용하여 샘플 데이터를 생성합니다. 이 함수는 클러스터링을 위해 등방성 가우시안 덩어리 (blobs) 를 생성합니다. 4 개의 중심을 가지는 4000 개의 샘플을 생성합니다.

## 샘플 데이터 생성
n_samples = 4000
n_components = 4

X, y_true = make_blobs(
    n_samples=n_samples, centers=n_components, cluster_std=0.60, random_state=0
)
X = X[:, ::-1]

K-Means++ 에서 시드 계산

scikit-learn 라이브러리의 kmeans_plusplus 함수를 사용하여 K-Means++ 에서 시드를 계산합니다. 이 함수는 k-means 클러스터링에 사용되는 초기 클러스터 중심을 반환합니다. K-Means++ 를 사용하여 4 개의 클러스터를 계산합니다.

## K-Means++ 에서 시드 계산
centers_init, indices = kmeans_plusplus(X, n_clusters=4, random_state=0)

샘플 데이터와 함께 초기 시드 플롯

matplotlib 라이브러리를 사용하여 샘플 데이터와 함께 초기 시드를 플롯합니다. 초기 시드는 파란색 점으로 표시되고, 샘플 데이터는 색상이 있는 점으로 표시됩니다.

## 샘플 데이터와 함께 초기 시드 플롯
plt.figure(1)
colors = ["#4EACC5", "#FF9C34", "#4E9A06", "m"]

for k, col in enumerate(colors):
    cluster_data = y_true == k
    plt.scatter(X[cluster_data, 0], X[cluster_data, 1], c=col, marker=".", s=10)

plt.scatter(centers_init[:, 0], centers_init[:, 1], c="b", s=50)
plt.title("K-Means++ 초기화")
plt.xticks([])
plt.yticks([])
plt.show()

요약

이 실습에서는 Python 의 scikit-learn 라이브러리를 사용하여 K-Means++ 초기화 방법을 배웠습니다. 샘플 데이터를 생성하고, K-Means++ 에서 시드를 계산하고, 샘플 데이터와 함께 초기 시드를 플롯했습니다. K-Means++ 는 데이터를 유사성 기반으로 그룹으로 클러스터링하는 인기 있는 알고리즘이며, k-means 의 기본 초기화 방법으로 사용됩니다.