Clustering (군집화)

 

앞서도 설명했지만 까먹었을까봐 다시 한 번 언급하겠다. Clustering과 Classification(분류)은 굉장히 비슷한 개념이다. 하지만 Clustering은 비지도학습(Unsupervised)으로, 정답이 없는 데이터들을 비슷한 것 끼리 묶을 때 사용한다. 그와 반대로 Classification(분류)은 정답이 있는 데이터들을 사용하므로 지도학습(Supervised)이다.

 

클러스터링은 (1) 군집 간 분산(inter-cluster variance) 최대화 (2) 군집 내 분산(inner-cluster variance) 최소화 를 목표로 둔다.

 


 

 

어떻게 해야 잘 군집화했다고 소문이 날까? 위의 그림처럼 잘 구분되어 있는 데이터들같은 경우는 군집화하기가 쉬울것이다. 하지만 아래와 같은 경우는 어떨까?

 

데이터를 몇 개로 군집화시켜야할까?

 

위의 그림처럼 우리는 데이터들을 2개로도, 6개로도 혹은 그 이상으로 군집화할 수 있다. 왜냐하면 정답이 없기 때문이다. 하지만 군집화 개수에 따라 우리의 모델은 천차만별로 달라질 수 있다. 깔끔하고 정확하게 군집화하기 위해서는 어떻게 해야할까? 이러한 고민을 해결하기 위해 우리는 군집 타당성 지표를 생각한다. 간단하게 설명하자면 각 데이터 간의 거리를 계산하여 군집화하는 것을 의미한다. 이에 대해 자세한 내용은 블로그를 참고하기를 바란다.

 

 

 

 

 

- K-means

 

K-means 방법

 

K-means의 K는 클러스터 수를 의미한다. 위의 예는 K가 2인 경우이다. 군집의 무게중심(빨간색 점)을 랜덤으로 초기화한다. 그 후 모든 점들(파란색 점)의 가장 가까운 무게중심을 기준으로 클러스터링한다. (E스텝) 그리고 클러스터의 무게중심을 업데이트한다. (M스텝)

이렇게 E스텝과 M스텝을 반복하며 최종적으로 결과가 바뀌지 않거나(=해가 수렴), 사용자가 정한 반복수를 채우게 되면 학습을 끝내는 것을 K-means라고 한다.

 

하지만 K-means는 초기값 위치에 따라 원하는 결과가 나오지 않을 수 있고  클러스터의 밀도나 크기가 다를 경우 원하는 결과가 나오지 않을 수 있으며 데이터의 분포가 특이한 경우에도 잘 적용되지 않는다. 이에 대한 시각적인 부분은 블로그를 참고하기를 바란다.

 

 

 

+ KNN (K-Nearest Neighbors) : KNN은 Classification이다.

 

KNN은 새로운 데이터가 주어졌을 때 기존 데이터 가운데 가장 가까운 K개 이웃의 정보로 새로운 데이터를 예측하는 방법론으로 지도학습(Supervised)이다. 레이지(Lazy)모델이라고도 불리는데 딱히 학습할만한 것이 없기 때문이다. KNN에 대해 궁금하다면 더 자세히 설명한 블로그를 참고하기를 바란다.

 

K가 1이면 오렌지색, K가 3라면 녹색으로 분류하게 될 것이다. (+ K는 홀수개여야함)

 

+) K-means와 KNN의 공통점과 차이점

  KNN K-means
공통점 데이터를 비슷한 집단으로 묶는 방법
차이점 지도학습 (분류) 비지도학습 (군집화)

 

 

- GMM (Gaussian Mixture Model)

 

GMM은 전체 데이터의 확률분포가 여러개의 정규분포의 조합으로 이루어져 있다고 가정하고 각 분포에 속할 확률이 높은 데이터끼리 클러스터링 하는 방법이다. GMM은 K-means등의 클러스터링 알고리즘으로 잘 묶을수 없었던 아래 데이터에서도 잘 작동한다. 자세한 내용은 블로그를 참고하길 바란다.

 

 

 

- Hierarchical Clustering (계층적 군집화)

 

Hierarchical Clustering은 계층적 트리 모형을 이용해 개별 개체들을 순차적, 계층적으로 유사한 개체 내지 그룹과 통합하여 군집화를 수행하는 알고리즘이다. Hierarchical Clustering은 클러스터의 수를 사전에 정하지 않아도 학습 수행가능하다. 이에 대해 자세한 내용은 블로그를 참고하길 바란다.

 

 

 

 


 

 

 

 

정리

 

 

 

'인공지능 > 인공지능 이론' 카테고리의 다른 글

14. 다층퍼셉트론 / Sigmoid / ReLU  (0) 2020.07.01
13. Perceptron (퍼셉트론)  (0) 2019.09.14
11. 차원의 저주 / PCA  (0) 2019.09.13
10. ROC Curve  (1) 2019.09.12
9. Classification (분류)  (0) 2019.09.11

+ Recent posts