728x90
Clustering은 비지도 학습이다. 지도 학습에서는 정답인 Y label이 있는 데이터를 사용하여 정답을 맞추는 것을 목표로 하나, 비지도 학습에서는 feature 정보들만 있는 데이터를 사용하여 최대한 비슷한 데이터들을 묶어 군집(Cluster)을 만드는 것이 목표이다.
K-means Clustering(K-평균 군집화)
클러스터링(Clustering)을 설명하는데 있어 가장 기본적인 알고리즘이 K-means Clustering으로 이를 수행하는 방법은 다음과 같이 아주 쉽다.
- 본인이 생각하는 적정한 군집의 수 K(예제에서는 K=3)를 설정한다.
- Step 1: 각 데이터에 랜덤 하게 class를 부여한다.
- Iteration 1, Step 2a: 각 class마다 점들 평균인 centroid를 구한다.
- Iteration 1, Step 2b: 각 데이터마다 가장 가까운 centroid를 찾고 해당 class로 재할당을 한다.
- 이를 새로운 class로 재할당되는 데이터가 없을 때까지 Iteration을 반복한다.
K-means 특징
1. K-means는 반드시 수렴(converge)하여 class를 할당하는 작업이 더 이상 변하지 않고 끝난다는 것이 증명되어 있다. 때문에 상당히 안정적인 알고리즘으로 사용할 수 있다.
2. 처음 initialize가 어떻게 되었는지에 따라 결과가 달라질 수 있다. 다음 그림을 보면 K=3이라는 군집이 첫 random 값에 의해 다른 결론이 도출되는 것을 볼 수 있다. 이에 random으로 class를 부여하는 작업을 여러 번 한 뒤 적절한 결과를 선택할 수 있다.
3. K를 몇으로 정할 것인지도 중요한 이슈이다. K를 고르는 명확한 가이드는 없으며, 여러 clustering validation 방법을 사용하여 어느 군집 개수가 적절한지 확인하는 방법을 사용해볼 수 있다.
참고자료: ISLR Seventh Printing
'IT > ML' 카테고리의 다른 글
클러스터링 성능 평가 (Cluster Evaluation) (0) | 2020.11.20 |
---|---|
Hierarchical clustering(계층적 군집화) 예시로 쉽게 이해하기 (0) | 2020.11.19 |
SVM 쉽게 이해하기 - (2) Support Vector Machine(서포트벡터머신) (0) | 2020.11.10 |
SVM 쉽게 이해하기 - (1) Maximal Margin Classifier와 Support Vector Classifier (0) | 2020.11.10 |
Boosting(부스팅) 쉽게 이해하기, Adaboost 파이썬 코드 (0) | 2020.11.03 |