ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 군집화 (Clustering)
    아가개발자/머신러닝 2020. 12. 6. 01:54
    Clustering 

    유사한 속성(기준)을 갖는 데이터를 묶어 전체 데이터를 몇 개의 군집으로 나누는 것 

    각 군집끼리의 데이터는 유사도가 낮아야 하며, 군집 안에서의 데이터끼리는 유사도가 높아야 한다.

    source: https://www.geeksforgeeks.org/clustering-in-machine-learning/

    군집화는 다시 말해 비슷한 성질을 갖는 데이터끼리 묶는 방법인데 그렇다면, 군집화와 분류의 차이점은 무엇일까? 

    분류는 이미 사전에 정의된 범주가 있는 데이터를 가지고 예측 모델을 학습하는 지도 학습이다. 

    군집화는 사전에 정의된 범주가 따로 없는 데이터를 가지고 최적의 그룹을 찾아가는 비지도 학습이다. 

     

    더 쉽게 이해를 하기 위해 예시를 들어보자, 

    여러 가지 기사 데이터를 주고 기사 내의 단어들을 가지고 유사한 기사끼리 모아 기사의 토픽을 군집화 할 수 있다. 

    이번에는 모델에게 유튜브 영상 데이터를 주자. 모델은 영상 데이터를 받아 영상의 특징을 이용하여 게임, 사람 등 영상을 군집화 할 수 있다. 

     

    유사도 척도 

    군집화를 수행할 때에는 어떠한 거리 측도를 사용하여 유사도(Similarity metric)를 측정할 것인지를 고려해야 한다. 

    거리 측도 방식에는 크게 세가지가 있다. 

     

    • 유클리디언 거리(Euclidean Distance) 

    일반적으로 사용되는 거리 척도로, 두 관측치 사이의 직선거리를 의미한다. 

     

    • 맨하탄 거리(Manhattan Distance)

    유클리디언 거리를 도로의 상태와 상관없이 직선을 이어 가장 가까운 거리를 의미했다면, 맨하탄 거리는 도로의 사정을 고려하여 도로에 난 길대로 이은 거리를 말하며 택시 거리라고도 불린다. 

    초록선: 유클리디언 거리, 그 외의 선: 맨하탄 거리 

    • 마할라노비스 거리(Mahalanobis Distance) 

    변수 내의 분산과 공분산을 반영하여 X와 Y간의 거리를 계산하는 방식이다. 

    source: https://blogs.sas.com/content/iml/2012/02/15/what-is-mahalanobis-distance.html

     

    알고리즘

     

    • 계층적 군집화 (Hierarchical Clustering)  

    - 개체들을 가까운 집단부터 묶어나가는 방식 

    - 군집화 결과 뿐 아니라 유사한 개체들이 결합되는 덴드로그램을 생성할 수 있다.

    - 사전에 군집의 수를 따로 정하지 않아도 군집화 수행이 가능하다. 

    - 덴드로그램을 생성 후 적절한 수준에서 잘라 최종 군집화 결과를 생성할 수 있다. 

    계층적 군집화의 덴드로그램; source: https://stackabuse.com/hierarchical-clustering-with-python-and-scikit-learn/

     

    • 분리형 군집화 

    - 전체 데이터 영역을 특정 기준으로 동시에 구분하는 방식

    - 사전에 군집 개수를 정하고, 각 개체들은 정의된 개수의 군집 중 하나에 속하게 된다. 

    - 각 군집은 하나의 중심을 가지며 이 중심에 객체가 할당되어 같은 중심에 할당된 개체들이 모여서 하나의 군집을 형성한다. 

    - k-means 군집화가 대표적이다. 

     

    K-평균 군집화 (K-means Clustering) 

    1. K개의 중심을 임의로 생성한다.
    2. 생성된 중심을 기준으로 모든 데이터에 군집을 할당한다. 
    3. 각 군집의 중심을 다시 계산한다.
    4. 중심이 변하지 않을 때까지 위의 2번 3번 과정을 반복한다. 

    source: https://www.researchgate.net/figure/K-means-example-in-2D-space-a-Cluster-centroids-are-initialized-at-random-positions_fig1_318042263

    K-means clustering의 단점은 비슷한 크기로 군집화가 되기 때문에 서로 다른 크기의 군집과 서로 다른 밀도의 군집을 잘 찾아내지 못한다는 점과, 지역적인 패턴이 존재하는 군집을 판별하기 어렵다.  

     

    • 분포 기반 군집화 (DBSCAN - Density Based Clustering)

    분포 기반 군집화는 높은 밀도를 가지고 모여있는 데이터는 그룹으로, 낮은 밀도를 가지고 있는 데이터들은 이상치 또는 잡음으로 분류한다. 

    source: https://www.kdnuggets.com/2020/04/dbscan-clustering-algorithm-machine-learning.html

    core point: 핵심자료로 e-neighborhood가 M개 이상의 데이터를 포함하는 자료이다. (e, M은 해당 군집화의 파라미터)

    border point: 주변 자료로 핵심자료는 아니지만 e-neighborhood에 핵심자료를 포함하는 자료이다.

    noise point: 잡음 자료 

     

    DBSCAN
    1. 임의 데이터를 선택하고 군집 n (n=1,2,3,...)을 부여한다. 
    2. 임의 데이터의 e-nn(e-neighborhood)을 구하고 데이터 수가 M보다 작으면 noise point로 판단
    3. M보다 큰 경우에 e-nn에 모두 군집 n을 부여한다. 군집 n의 모든 데이터의 e-nn의 크기가 M보다 큰 것이 없을 때까지 반복

     

    e 가 너무 작을 경우 많은 데이터가 잡음으로 분류되고 e가 너무 클 경우에는 군집의 개수가 적어지기 때문에 파라미터 설정을 잘해야 한다. 

    M은 보통 특성 변수 개수 +1 사용한다. 

     

    댓글

Designed by Tistory.