데브허브 | DEVHUB | [머신러닝+딥러닝 기초 강의] 15강. k-평균[머신러닝+딥러닝 기초 강의] 15강. k-평균
- K-평균은 비지도 학습의 대표적인 군집(클러스터링) 알고리즘으로, 사전에 레이블을 모르는 데이터에서 유사한 샘플들을 자동으로 그룹화합니다. 🍎🍌🍍
- 알고리즘은 초기 K개의 중심점(센트로이드)을 무작위로 설정한 후, 각 샘플을 가장 가까운 중심점에 할당하고, 클러스터의 평균을 계산하여 중심점을 업데이트하는 과정을 반복하여 최적의 군집을 찾습니다. 🔄✨
- K-평균의 주요 단점은 클러스터의 개수(K)를 사전에 지정해야 한다는 점이며, 이는 데이터의 특성을 미리 알기 어려울 때 문제가 될 수 있습니다. ❓🤔
- 적절한 K값을 결정하는 방법 중 하나로 '엘보 방법'이 소개되었는데, K값 변화에 따른 이너셔(응축도) 그래프에서 기울기가 급격히 완만해지는 지점(엘보)을 최적의 K로 간주합니다. 📉💡
- 사이킷런(scikit-learn)의
KMeans 클래스를 사용하여 K-평균을 구현할 수 있으며, n_clusters 매개변수로 K값을 지정하고, fit() 메서드로 모델을 훈련합니다. 🛠️💻
- 훈련된 K-평균 모델은
labels_ 속성을 통해 각 샘플이 속한 클러스터 레이블을 제공하며, cluster_centers_ 속성으로 각 클러스터의 중심점(평균 이미지)을 확인할 수 있습니다. 🏷️📍
transform() 메서드를 사용하여 각 샘플과 클러스터 중심점 간의 거리를 새로운 특성으로 변환할 수 있어, 다른 머신러닝 모델의 입력으로 활용 가능합니다. 📏📈
predict() 메서드를 통해 훈련에 사용되지 않은 새로운 샘플이 어떤 클러스터에 속할지 예측할 수 있으며, 이는 K-평균의 실용적인 장점 중 하나입니다. 🔮🚀
- K-평균은 간단하고 효과적이며 널리 사용되지만, 모든 군집 알고리즘이
predict 메서드를 제공하는 것은 아니라는 점을 유의해야 합니다. 👍🚫