여러가지공부/머신러닝(Machine Learning)

[머신러닝] K mean clustering이란? 예제로 이해하기(클러스터링)

끄적끄적아무거나 2023. 5. 18. 08:26
반응형

 

목차

     

     

     

     

     

    K mean clustering이란?

     

    그림1

     

    위 그림1과 같이 무게 별로 측정한 샘플이 12개가 있다고 생각해 보겠습니다.  이를 3개의 Cluster로 나눈다고 생각하면 우리는 인직하는 그대로 쉽게 3개로 나눌수 있을 것입니다. 

     

    하지만 컴퓨터 프로그램이 위 분류를 진행하려면 어떻게 해야할 까요? 

     

    Clustering 분류 방법 중 하나가 K mean Clustering입니다. 이번 포스터에서는 K mean Clustering에 대해 알아보겠습니다.  K는 Cluster의 수를 의미합니다. 간단하게 각 클러스터의 평균으로 분류하겠다는 의미입니다.

     

     

     

     

     

     

    K mean clustering 예제로 알고리즘 만들기

     

     

     

     

    그림1

     

    1. 그림1을 분류할 덩어리인 Cluster의 수 k 값을 결정합니다. k 값 결정은 포스트 뒤쪽에서 설명 드리고 이번 예제는 k = 3으로 정하고 시작하겠습니다. 

     

     

     

     

     

    그림2

    2. 그림2와 같이 랜덤하게 k=3에 맞춰 3개의 샘플을 정합니다. 

     

     

     

     

     

     

    그림3

    3. 그림3과 같이 랜덤하게 정한 샘플을 제외한 샘플에서 랜덤하게 정한 샘플까지의 거리를 각 측정합니다. 그리고 거리가 가장 가까운쪽에 위치한 Cluster 색상에 맞춥니다.

     

     

     

     

     

    그림4

     

    4. 위 그림4와 같이 각 Cluster의 평균(Mean)을 점선과 같이 표기해줍니다. 앞서 랜덤하게 선택한 샘플 대신 이번에는 각 평균을 기준으로 샘플과의 거리가 짧은 쪽으로 찾아서 Clustering하는 작업을 다시 해줍니다. 사실 그림4의 평균으로 다시 Clustering해도 동일한 결과가 나오기 때문에 여기서 종료를 합니다. 

     

     

     

     

     

     

     

     

     

    K mean clustering 예제로 알고리즘 평가 및 선택

     

     

    그림5

     

    그림5와 같이 분류는 제대로 된 분류가 아닙니다. 이를 평가하는 방법은 각 Cluster의 분산 값을 더한 값입니다. 분류가 잘될 수록 분산(Variance) 값의 합이 작게 나올 것입니다. 분산 수식은 링크의 포스트를 참조하세요(https://scribblinganything.tistory.com/687). 

     

     

    앞에서 진행한 1~4번 과정을 다시 진행해서 분산 값을 구합니다. 과정을 진행할 때마다 초기 샘플을 랜덤하게 선택하기 때문에 최종 평가 값인 분산 값은 같게 나올 수도 있고 다르게 나올 수 있습니다. 

     

    이 중에서 가장 작은 분산 값의 모델을 선택합니다. 

     

     

     

     

     

     

    K 값 선택 방법

     

    그림6

     

    그림6과 같이 k에 따라 최적의 Clustering 했다고 가정하겠습니다. 이때 분산 값은 k가 커질수록 작아집니다. 그러면 k가 샘플의 수만큼 큰것이 가장 좋은 clustering인가? 라고 하면 아니라는 것을 쉽게 알 수 있습니다.

     

     

    그림7

     

    그림7과 같이 전체 Variation을 그래프로 그려보면 쉽게 알 수 있습니다. k의 증가와 함께 variation이 줄어드는 데 어느 수 이상부터는 감소가 확연하게 줄어듭니다. 해당 구간의 k 값을 기준으로 잡습니다. 

     

     

     

     

     

     

    반응형