목차
K mean clustering이란?
위 그림1과 같이 무게 별로 측정한 샘플이 12개가 있다고 생각해 보겠습니다. 이를 3개의 Cluster로 나눈다고 생각하면 우리는 인직하는 그대로 쉽게 3개로 나눌수 있을 것입니다.
하지만 컴퓨터 프로그램이 위 분류를 진행하려면 어떻게 해야할 까요?
Clustering 분류 방법 중 하나가 K mean Clustering입니다. 이번 포스터에서는 K mean Clustering에 대해 알아보겠습니다. K는 Cluster의 수를 의미합니다. 간단하게 각 클러스터의 평균으로 분류하겠다는 의미입니다.
K mean clustering 예제로 알고리즘 만들기
1. 그림1을 분류할 덩어리인 Cluster의 수 k 값을 결정합니다. k 값 결정은 포스트 뒤쪽에서 설명 드리고 이번 예제는 k = 3으로 정하고 시작하겠습니다.
2. 그림2와 같이 랜덤하게 k=3에 맞춰 3개의 샘플을 정합니다.
3. 그림3과 같이 랜덤하게 정한 샘플을 제외한 샘플에서 랜덤하게 정한 샘플까지의 거리를 각 측정합니다. 그리고 거리가 가장 가까운쪽에 위치한 Cluster 색상에 맞춥니다.
4. 위 그림4와 같이 각 Cluster의 평균(Mean)을 점선과 같이 표기해줍니다. 앞서 랜덤하게 선택한 샘플 대신 이번에는 각 평균을 기준으로 샘플과의 거리가 짧은 쪽으로 찾아서 Clustering하는 작업을 다시 해줍니다. 사실 그림4의 평균으로 다시 Clustering해도 동일한 결과가 나오기 때문에 여기서 종료를 합니다.
K mean clustering 예제로 알고리즘 평가 및 선택
그림5와 같이 분류는 제대로 된 분류가 아닙니다. 이를 평가하는 방법은 각 Cluster의 분산 값을 더한 값입니다. 분류가 잘될 수록 분산(Variance) 값의 합이 작게 나올 것입니다. 분산 수식은 링크의 포스트를 참조하세요(https://scribblinganything.tistory.com/687).
앞에서 진행한 1~4번 과정을 다시 진행해서 분산 값을 구합니다. 과정을 진행할 때마다 초기 샘플을 랜덤하게 선택하기 때문에 최종 평가 값인 분산 값은 같게 나올 수도 있고 다르게 나올 수 있습니다.
이 중에서 가장 작은 분산 값의 모델을 선택합니다.
K 값 선택 방법
그림6과 같이 k에 따라 최적의 Clustering 했다고 가정하겠습니다. 이때 분산 값은 k가 커질수록 작아집니다. 그러면 k가 샘플의 수만큼 큰것이 가장 좋은 clustering인가? 라고 하면 아니라는 것을 쉽게 알 수 있습니다.
그림7과 같이 전체 Variation을 그래프로 그려보면 쉽게 알 수 있습니다. k의 증가와 함께 variation이 줄어드는 데 어느 수 이상부터는 감소가 확연하게 줄어듭니다. 해당 구간의 k 값을 기준으로 잡습니다.
'여러가지공부 > 머신러닝(Machine Learning)' 카테고리의 다른 글
정보이득이란? 지니불순도, 엔트로피, 분류오차 예제 풀이, 파이썬 코드 풀이(Information Gain, Gini Impurity, Entrophy, Classification Error)#1 (0) | 2023.05.23 |
---|---|
공분산 행렬이란? 예제로 값 구해보기(Covariance Matrix), 파이썬 코드 (0) | 2023.05.19 |
[머신러닝]SVM(Support Vector Machines)이란? 예제와 수식풀이 (0) | 2023.05.17 |
[머신러닝]Correlation이란? Covariance 차이, 수식, 사용 목적(피어슨 상관관계) (0) | 2023.05.16 |
[머신러닝] 공분산(Covariance)란? 특징 및 사용 목적 (0) | 2023.05.13 |