파이썬/파이썬-AI 기본

왜 K-means 클러스터링을 사용하는가?

용사냥꾼69 2023. 2. 18. 20:07
728x90

K-means 클러스터링


K 개의 중심점에서 거리를 토대로 가까운 데이터들을 모아서 군집화 하는 비지도학습의 일종이다.

비지도학습이 그렇듯이, 예측하려는 특정 결과가 없을 경우 사용된다.

K-means는 대부분의 특성이 연속형 변수일 때 사용된다. 즉, 범주형 변수의 경우에는 사용하기가 곤란하다는 것이다.

장점

  • 공통적으로 구현이 되어있을 확률이 높은 모델이다.
  • 인기가 있기 때문에 연구가 많다.
  • 상대적으로 빠르다.

단점

1. 군집이 구형이라고 가정한다.

  • 당연히, 모든 군집이 구형일 수는 없다.

2. 이상치에 대하여 오류가 발생한다.

  • 상대적인 거리를 기반으로 하는 알고리즘이 공유하는 단점이라고 볼 수 있다.

3. 두 변수의 규모가 다르다면 문제가 일어난다.

  • 표준화나 정규화같은 스케일링을 해야한다.

4. 최적의 K 값을 고려해야 한다.

  • 몇 개의 중심점으로 군집화를 하는 것이 좋은가에 대해서 직접 판단해야 한다.

5. 고차원 데이터에서 어려움을 겪는다.

  • 이 때문에 차원 감소에 대한 고려가 필요하다.

언제 사용하는가?


1. 프로젝트가 다른 기여자들에게 도움을 받을 때

  • 잘 알려진 알고리즘이기 때문에, 대부분 쉽게 이해할 수가 있다.

2. 비전문적인 동료들을 설득할 때

  • 간단한 원리라서 설명해주기 쉽고, 이해하기 편한 예시들도 많다.

3. 매우 큰 데이터셋일 때

  • 다른 군집화에 비해선 빠르기 때문에 시간이 적다면 고려해볼 선택지가 된다.

언제 사용하지 않는가?


1. 필요한 정보가 가장 유사한 군집이 어떤 것인지에 대한 것일 때

  • K-means는 군집의 종류만을 제공할 뿐, 어떤 것이 더 유사한지 제공하지 않는다.

  • 이 경우, hierarchical clustering 을 사용하는 것이 권장된다.

2. 군집의 형태가 불규칙할 때

  • 구형의 군집을 가정하는 알고리즘이기 때문에 불규칙한 군집이 있을 것이라고 생각된다면 사용하지 않는 것이 좋다.

  • 이 경우 gaussian mixture models, DBSCAN과 같은 다른 선택지를 생각해보는 편이 좋다.

출처 : https://crunchingthedata.com/when-to-use-k-means-clustering/