
이 문서는 비지도학습(unsupervised learning) 알고리즘 중 대표적인 K-Means 클러스터링에 대한 학습 내용을 정리했다.
강의를 보며 함께 실습한 내용을 바탕으로 개념, 작동 방식, 적용 예시를 정리
K-Means는 각 데이터와 중심 간의 거리를 기준으로 분류
이때 사용하는 대표적인 거리 계산 방식은 유클리드 거리(Euclidean distance)
공식:
d(p, q) = √[(p₁ - q₁)² + (p₂ - q₂)² + ... + (pₙ - qₙ)²]
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(X)
labels = kmeans.labels_
centroids = kmeans.cluster_centers_
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.scatter(centroids[:, 0], centroids[:, 1], s=200, c='red', marker='X')
plt.title("K-Means Clustering Result")
plt.show()
K-Means는 처음에는 간단하게 느껴졌지만,
K값 선택과 초기 중심 위치 등에 따라 결과가 꽤 달라질 수 있다는 점이 인상 깊었다.
또한 시각화를 통해 군집이 어떻게 형성되는지 보는 것이 이해에 큰 도움이 되었다.
향후 PCA나 t-SNE 같은 차원 축소 기법과 함께 적용해보고 싶다.