Recent Posts
Stats & AI tech blog - '일단 시도함'
[ML/DL] K-Means Clustering 본문
Statistics & AI/Segmentation & Clustering
[ML/DL] K-Means Clustering
justdoit ok? 2024. 2. 26. 14:191. K-Means 알고리즘이란?
비지도학습에 속하는 머신러닝 기법으로 데이터를 유사한 특성을 가진 K개의 군집(Cluster)으로 묶는 알고리즘이다.
K개의 점과의 거리를 기반으로 구현된다는 면에서 K-NN 알고리즘과 유사하지만,
K-NN은 지도학습 방법으로 Classification 알고리즘이고,
K-Means는 비지도학습 방법으로 Clustering 알고리즘이다.
비지도학습인 Clustering은 정답이 되는 변수가 없기 때문에 분류와 달리 모델 예측 성능을 평가하기 보다
이런 식으로 군집화 될 수 있구나 정도만을 파악할 수 있다.
2. K-Means 알고리즘 절차
1. 군집 개수 (K) 설정 > 2. 초기 중심점 설정 > 3. 데이터를 군집에 할당 > (4. 중심점 재설정 > 5. 군집에 재할당)
중심의 위치가 변하지 않을 때까지 4-5 반복
- 군집의 개수 (K) 설정
: 사람이 판단해야하며 군집의 개수에 따라 결과가 크게 달라질 수 있다 (K-Means의 한계점)
아래와 같은 방법론을 참고하여 결정할 수 있다.
- Rule of thumb
- Elbow Method
- 정보 기준 접근법 (Information Criterion Approach) - 초기 중심점 설정
: K개의 초기 중심점을 설정해야한다. 마찬가지로 초기 중심점에 따라 성능이 크게 달라질 수 있고,
아래 방법론을 참고하여 결정할 수 있다.
- Randomly select
- Manually assign
- K-means++
- 데이터를 군집에 할당
: 거리 상 가장 가까운 초기중심점의 군집으로 데이터를 할당한다. - 중심점 재설정
: 군집 배정이 끝나면 중심점을 해당 군집의 가장 중간에 위치한 지점으로 재설정한다. - 데이터를 군집에 재할당
: 중심점 이동이 없을 때까지, 군집 재할당 - 중심점 재설정 과정을 반복한다.
* R예제는 아래 게시물 참고!
2024.02.26 - [R] - [R] K-Means Clustering