데이터 이야기

군집화 모델(Clustering Model)의 개념과 K-Means/K-Means++ 알고리즘

Kyungmin Kim 2023. 1. 9. 23:30

들어가면서

 

머신러닝은 크게 지도학습비지도학습으로 구분할 수 있다. 지도 학습(Supervised Learning)은 입력 값이 주어졌을 때 원하는 결과값(label)을 가진 학습 데이터를 학습시켜서, 이후 결과값이 없는 테스트 데이터가 주어졌을 때 적절한 결과값을 찾도록 하는 방법이다. 지도 학습은 결과값이 딱딱 끊어지는 범주형 데이터인 경우 분류 모델(Classification Model)을 활용하고, 연속형 데이터가 결과값으로 제공된다면 회귀 모델(Regression Model)을 활용하게 된다.

 

 

반면 학습 데이터가 없는 경우라면 비지도학습(Unsupervised Learning)을 적용하게 된다. 오늘 정리한 군집화 모델(Clustering Model)이 대표적이다. 

 

 


군집화 모델 Clustering Modeling

 

Clustering Modeling는 비지도학습의 하나로 결과값이 없는 데이터를 분류할 때 활용한다. 특징이 비슷한 데이터들끼리 그룹핑을 하는 방식이다. 여기서 '특징이 비슷하다'는 의미는 데이터 내에서 거리가 가까운 것을 의미한다. 

ⓒKyungmin Kim

 

주요 클러스터링 알고리즘은 KMeans, DBSCAN 등 다양한 알고리즘이 존재한다. 이 중 가장 보편적인 K-평균 군집화(K-Means Clustering)을 소개해보겠다.

 


K-평균 군집화 K-Means Clustering

 

쉽게 생각하면 가장 활용하기 좋은 K개의 그룹으로 분류하는 것이다. K개의 평균값을 중심으로 데이터를 클러스터링 시키는 개념으로 볼 수 있다. 아래 이미지처럼 2개의 그룹으로 구분하겠다 설정한다면 아래와 같이 나눠질 것이다.

알고리즘의 동작 방식은 간단하다.

  1. 우선 k값을 결정해야 한다. 이를 토대로 얼마나 많은 클러스터를 생성할지가 결정된다.
  2. 그 다음에는 초기 Centroid를 '랜덤하게' 결정하게 된다. 그리고 이를 중심으로 클러스터가 생성된다.
  3. 이렇게 Centroid가 정해지면, 각 데이터별로 가장 가까운 Centroid를 찾아서 해당 클러스터에 데이터를 할당한다. 
  4. 데이터가 할당된 이후, 형성된 클러스터의 중심에 다시 Centroid가 형성된다.
  5. 3~4의 과정을 반복하며 재할당되는 데이터가 없어질 때까지 실행한다. 

 

간단한 방식이지만, 이 방식의 단점도 존재한다. 초기 Centroid가 랜덤하게 결정되기 때문에, Centroid가 잘못 설정되면 결과값이 이상한 형태로 나타날 수 있다는 점k의 갯수를 미리 정해줘야 한다는 점이다. 물론 반대로 몇개로 나눌지가 미리 정해진 상황이라면 이 방식이 유용할 수 있다. 이전에 물류PO로 일할 때, 배송권역별 내 기사님의 배송물량을 나누는 일이 있었다. 이 때는 몇 명의 기사님이 일할지 미리 정해진 상태였기 때문에 이런 k-means Clustering이 효과적이었다.

 

이 중 Centroid 배치와 관련한 단점을 극복하기 위해 등장한 것이 K-Means++ Clustering이다. K-Means++ Clustering은 초기 중심점을 생성하는 단계에서 K-Means Clustering과 차이를 가진다.

  1. 데이터 집합으로부터 임의의 데이터를 하나 선택하여 첫 번째 중심으로 설정한다.
  2. k개의 중심이 선택될 때까지 다음의 단계를 반복한다.
    • 데이터 집합의 각 데이터에 대해서, 해당 데이터와 선택된 중심점들 중 가장 가까운 중심과의 거리 D(x)를 계산한다.
    • 확률이 D(x)^2에 비례하는 편중 확률 분포를 사용하여 임의의 데이터를 선택한 후, n번째 중심으로 설정한다.
  3. 선택된 k개의 중심들을 초기 값으로 하여 k-평균 클러스터링을 수행한다.

    출처: (위키백과) k-평균 알고리즘
ⓒ Youtube

 

'데이터 이야기' 카테고리의 다른 글

Uber의 Data Science Team의 비전  (0) 2023.04.09