데이터 과학/머신러닝

클러스터링 기법

sunning 2025. 4. 23. 15:00
728x90

1. 클러스터링의 개요와 필요성

클러스터링(군집화) 또는 군집 분석은 미리 정해진 분류 기준이나 정답(label) 없이, 데이터의 특성과 유사성에 따라 비슷한 데이터들을 그룹(클러스터)으로 묶는 방법을 말한다 ([클러스터링] 비계층적(K-means, DBSCAN) 군집분석 - yg’s blog). 즉, 전통적인 지도학습과 달리 비지도 학습의 한 종류로서, 클러스터 내의 데이터들은 서로 유사하고 클러스터 간에는 차이가 크게 되도록 그룹핑하는 것이 목적이다 ([클러스터링] 비계층적(K-means, DBSCAN) 군집분석 - yg’s blog). 이러한 군집화 기법을 통해 우리는 데이터 내재된 구조나 패턴을 발견하고, 숨겨진 관계를 탐색할 수 있다. 레이블링되지 않은 대규모 데이터에서도 자동으로 패턴을 찾아낼 수 있기 때문에, 데이터 과학에서 탐색적 분석이나 특징 추출 단계에서 널리 활용된다 (Unsupervised Machine Learning: Examples and Use Cases) (Unsupervised Machine Learning: Examples and Use Cases). 또한 데이터에 대한 사전 지식이 부족한 경우에도 군집화를 통해 중요한 그룹이나 패턴을 발견함으로써 새로운 통찰을 얻을 수 있다.

(Clustering in Machine Learning | GeeksforGeeks) 예를 들어, 아래 그림은 2차원 공간에 흩어진 데이터 포인트들을 세 개의 클러스터로 군집화한 결과를 보여준다. 각각의 색깔로 표시된 군집은 내부의 점들끼리 상대적으로 가깝고 유사하며, 다른 군집의 점들과는 거리가 먼 형태로 분리되어 있다. 이처럼 클러스터링은 데이터의 응집도(cohesion)를 높이고 분리도(separation)를 크게 함으로써, 데이터에 내재한 군집 구조를 찾아내는 것이다. 이러한 군집화 결과는 데이터 압축이나 시각화 측면에서도 유용하여, 복잡한 데이터셋을 몇 개의 군집 대표값으로 단순화해 해석할 수 있게 한다 (Clustering in Machine Learning | GeeksforGeeks).

군집화의 활용 예시: 클러스터링은 다양한 분야에서 데이터 세분화패턴 발견을 위해 활용된다. 예를 들어, **고객 세분화(시장_segment)**에 클러스터링을 적용하면 구매 행태가 비슷한 고객군을 발견하여 맞춤형 마케팅에 활용할 수 있다 (Clustering in Machine Learning | GeeksforGeeks). 장바구니 분석에서는 함께 구매되는 상품들을 군집화하여 연관 상품을 파악하고 프로모션 전략을 세울 수 있다 (Clustering in Machine Learning | GeeksforGeeks). 소셜 네트워크 분석에서는 이용자의 활동 데이터를 군집화하여 관심사별 커뮤니티를 발견하거나, 유사한 취향을 가진 사람들을 서로 추천해주는 데 사용할 수 있다 (Clustering in Machine Learning | GeeksforGeeks). 의료 영상 분석 분야에서는 이미지 픽셀들을 클러스터링하여 엑스선 사진 등에서 병변이 의심되는 영역을 자동으로 구분해낼 수 있으며 (Clustering in Machine Learning | GeeksforGeeks), 이상 탐지 분야에서는 정상 데이터들과 밀집도가 다른 관측치를 군집화 과정에서 **이상치(outlier)**로 식별하여 금융 사기 탐지 등에 활용한다 (Clustering in Machine Learning | GeeksforGeeks). 이밖에도 클러스터링은 거대 데이터셋에서 유사한 데이터들을 묶어 데이터 압축 및 요약을 가능하게 하며 (Clustering in Machine Learning | GeeksforGeeks), 추천 시스템, 문서 토픽 군집화, 생물정보학의 유전자 발현 패턴 분석 등 다양한 영역에서 필요성이 크다.

2. 클러스터링의 주요 유형 및 분류 기준

클러스터링 알고리즘은 접근 방식과 생성되는 군집의 특징에 따라 여러 유형으로 분류할 수 있다. 일반적으로 알고리즘이 데이터에 군집 모델을 형성하는 방법에 따라 다음과 같은 대표적인 분류가 존재한다 (Cluster analysis - Wikipedia):

  • 분할적 군집화(Partitioning) / 중심 기반 클러스터링: 미리 지정한 군집 개수 k에 따라 데이터를 k개의 그룹으로 직접 나누는 방법이다. 군집을 대표하는 **중심점(centroid)**을 사용하여 데이터를 할당하며, K-평균 클러스터링이 대표적이다 (Clustering algorithms  |  Machine Learning  |  Google for Developers). 이 방식은 계층 구조를 생성하지 않고 평면적으로 데이터를 분할하며, 알고리즘이 비교적 단순하고 대용량 데이터에 효율적이라는 장점이 있지만, 초기 중심 설정과 이상치(outlier)에 민감하고 군집 개수 k를 사전에 알아야 한다는 특징이 있다 (Clustering algorithms  |  Machine Learning  |  Google for Developers) (Clustering algorithms  |  Machine Learning  |  Google for Developers).
  • 계층적 군집화(Hierarchical clustering): 개별 데이터 포인트로부터 시작해 점차 유사한 군집을 **병합(agglomerative)**하거나, 반대로 전체 데이터를 하나의 군집으로 시작해 점차 **분할(divisive)**하여 계층적 트리 구조(덴드로그램)를 형성하는 방법이다. 거리 또는 연결 기준(linkage)에 따라 군집이 형성되며, 결과적으로 데이터들 사이의 계층적 관계를 나타내는 군집 트리를 얻는다 (Clustering algorithms  |  Machine Learning  |  Google for Developers). 사용자는 덴드로그램을 적절한 높이에서 잘라 원하는 개수의 클러스터를 얻을 수 있으며, 군집의 개수를 사전에 지정할 필요가 없다는 장점이 있다. 다만 일반적으로 계산 복잡도가 높아 대규모 데이터에 적용이 어렵고, 한 번 이루어진 병합/분할 결정이 이후에 수정되지 않아 초기 단계의 잘못된 결정이 최종 군집 결과에 영향을 줄 수 있다는 단점이 있다.
  • 밀도 기반 군집화(Density-based clustering): 데이터 공간에서 밀도가 높은 영역을 군집으로 식별하는 방법으로, 밀집된 데이터 포인트 영역과 희소한 영역을 구분하여 군집을 형성한다 (Clustering algorithms  |  Machine Learning  |  Google for Developers). 대표 알고리즘인 DBSCAN은 반경 ε 내에 일정 개수 이상 포인트가 모여 있으면 하나의 군집으로 간주하고, 밀도가 낮은 영역의 포인트는 잡음(noise) 또는 이상치로 처리한다. 이 방식은 군집의 형태가 원형일 필요 없이 임의의 모양으로 나타날 수 있다는 장점이 있으며 (Clustering algorithms  |  Machine Learning  |  Google for Developers), 군집의 개수를 자동으로 결정한다는 특징이 있다. 그러나 데이터의 밀도가 군집마다 많이 다르거나 고차원인 경우에는 적절한 밀도 기준 설정이 어려워 성능이 저하될 수 있고 (Clustering algorithms  |  Machine Learning  |  Google for Developers) (Difference between K-Means and DBScan Clustering | GeeksforGeeks), 거리 반경(ε)과 최소 포인트 수 등 하이퍼파라미터 설정에 따라 결과가 민감하게 달라진다는 단점이 있다.
  • 모델 기반 군집화(Model-based clustering) / 분포 기반 군집화(Distribution-based): 데이터가 특정 확률 모델 (예: 혼합 분포)로부터 생성되었다는 가정하에, 통계적 추정 방식을 통해 군집을 찾아내는 방법이다. 대표적으로 **가우시안 혼합 모델(Gaussian Mixture Model)**은 데이터가 여러 개의 가우시안 분포의 혼합으로 이루어졌다고 가정하고 각 가우시안 구성요소를 하나의 군집으로 판단한다 (Clustering algorithms  |  Machine Learning  |  Google for Developers). 이 방식에서는 EM 알고리즘 등을 활용하여 모델의 모수(평균, 공분산, 혼합비율)를 추정하고 각 데이터가 각 구성요소에 속할 확률을 계산함으로써 소프트 클러스터링 결과를 얻는다. 모델 기반 군집화는 데이터의 분포 형태를 활용하므로 복잡한 형태의 클러스터도 모델링할 수 있고, 군집화 결과에 대해 확률적 해석이 가능한 장점이 있다 (Clustering algorithms  |  Machine Learning  |  Google for Developers). 그러나 데이터에 대한 분포 가정이 잘못되면 성능이 떨어질 수 있으며, 군집 개수 k를 포함한 모델 구조를 결정해야 하는 문제가 있다. 또한 EM 알고리즘 기반의 방법들은 초기값에 따라 수렴 결과가 달라질 수 있고 계산 비용이 높을 수 있다는 단점이 있다.

이외에도 고차원 데이터에서 일부 중요한 변수 공간만 고려하는 부분공간 클러스터링이나, 그래프에서 완전 연결 된 하위그래프(클릭)를 찾는 그래프 기반 클러스터링 등 특수한 유형들이 존재한다 (Cluster analysis - Wikipedia). 또한 하나의 데이터가 여러 군집에 속할 수 있는 겹치는 군집화나, 군집 소속을 확률로 나타내는 퍼지(fuzzy) 군집화 등이 개념적으로 구분되기도 한다. 예를 들어 GMM은 하나의 데이터에 대해 여러 군집에 속할 확률을 부여하므로 소프트/퍼지 군집화의 예라 할 수 있고, K-평균은 각 데이터가 하나의 군집에만 완전히 속하는 하드 군집화이다 (Clustering in Machine Learning | GeeksforGeeks).

3. 주요 클러스터링 기법 소개 및 특징

여러 가지 클러스터링 알고리즘 중에서도 K-평균, 계층적 군집화, DBSCAN, 가우시안 혼합 모델 등은 데이터 과학 분야에서 널리 사용되는 대표적인 기법들이다. 각 알고리즘의 기본 개념과 동작 원리, 장단점을 간략히 살펴본다.

3.1 K-평균 클러스터링 (K-Means)

K-평균 알고리즘은 주어진 데이터를 미리 정한 군집 수 K개로 분할하는 대표적인 중심 기반 클러스터링 방법이다. K-평균은 “같은 군집에 속하는 데이터들은 하나의 중심점 주변에 모여 있을 것”이라는 가정 하에, 군집 내 **응집도(cohesion)**를 측정하는 손실 함수를 최소화하도록 중심점을 반복 업데이트한다 ([클러스터링] 비계층적(K-means, DBSCAN) 군집분석 - yg’s blog) ([클러스터링] 비계층적(K-means, DBSCAN) 군집분석 - yg’s blog). 수식으로 K-평균은 다음 목표 함수를 최소화하는 군집 분할을 찾는다.

min⁡C1,…,CK∑i=1K∑x∈Ci∥x−μi∥2\min_{C_1,\dots,C_K} \sum_{i=1}^{K} \sum_{x \in C_i} \| x - \mu_i \|^2

여기서 CiC_iii번째 군집의 데이터 점 집합, μi\mu_i는 그 군집의 중심점(평균 벡터)이다. 즉, 각 군집 내부의 데이터와 중심 μi\mu_i 사이의 거리 제곱합(분산)을 최소화하는 방향으로 군집들을 형성한다. 알고리즘은 일반적으로 다음과 같이 동작한다 (Difference between K-Means and DBScan Clustering | GeeksforGeeks) (Difference between K-Means and DBScan Clustering | GeeksforGeeks):

  1. 우선 군집의 개수 K를 결정하고 초기 중심점 μ1,…,μK \mu_1, \dots, \mu_K를 무작위로 설정한다.
  2. 각 데이터 포인트를 현재 중심점들과 거리(예: 유클리드 거리)를 계산하여 가장 가까운 중심점의 군집에 할당한다.
  3. 할당 결과를 바탕으로 각 군집의 중심점을 해당 군집 데이터들의 평균값으로 업데이트한다.
  4. 군집 할당과 중심 업데이트를 반복하여 더 이상 변화가 없을 때 알고리즘을 수렴 종료한다.

이 과정을 통해 데이터는 최종적으로 K개의 클러스터로 분할되며, 각 군집은 자체적인 중심점을 갖는다. K-평균의 장점은 구현이 간단하고 계산 속도가 빠르며, 대용량 데이터에도 선형적으로(scale linearly) 확장 가능하다는 점이다 (K-Means Clustering Explained - Neptune.ai). 또한 결과를 이해하고 시각화하기 비교적 쉬워 데이터 분석에서 자주 활용된다. 그러나 단점으로는 앞서 언급했듯이 군집 수 K를 사전에 알아야 하고, 초기 중심 선택에 따라 다른 결과가 나올 수 있으며 지역 최적해에 수렴할 수 있다는 점이 있다 (Difference between K-Means and DBScan Clustering | GeeksforGeeks). 또한 K-평균은 거리 기반 군집화이므로, 데이터가 원형(구형)으로 분포하고 분산이 유사한 군집에 잘 맞지만, 복잡한 모양의 군집이나 밀도가 크게 다른 군집에는 부적합하다 (Difference between K-Means and DBScan Clustering | GeeksforGeeks) (Difference between K-Means and DBScan Clustering | GeeksforGeeks). 특히 이상치에 취약해서, 데이터에 노이즈나 특이값이 있으면 중심이 왜곡되어 군집 결과에 나쁜 영향을 줄 수 있다 (Difference between K-Means and DBScan Clustering | GeeksforGeeks). 이러한 약점을 보완하기 위해 K-평균의 변형으로 군집 중심으로 평균 대신 중앙값을 사용하는 K-메드로이드(K-medoids) 알고리즘이 있으며 ([클러스터링] 비계층적(K-means, DBSCAN) 군집분석 - yg’s blog), 초기값 민감도를 완화하기 위한 K-means++ 초기화 등의 기법도 제안되었다.

K-평균 요약: 거리 기반의 단순하고 빠른 알고리즘으로 널리 쓰이지만, 군집 수 지정 필요, 구형 클러스터 가정, 이상치 민감 등의 한계를 가진다. 그럼에도 불구하고 데이터가 비교적 균질한 분포를 가질 때는 효율적이고 효과적인 군집화를 제공하여 기본 알고리즘으로 활용된다.

3.2 DBSCAN (밀도 기반 클러스터링)

DBSCAN (Density-Based Spatial Clustering of Applications with Noise)은 밀도 기반 클러스터링의 대표적인 알고리즘으로, 데이터 밀도가 높은 영역을 군집으로 식별하는 방법을 사용한다. DBSCAN은 두 개의 매개변수 ε(입실론)과 minPts를 사용하여 군집을 정의하는데, 기본 아이디어는 특정 반경 ε 내에 minPts 이상의 이웃점을 가지고 있는 점들을 **코어 포인트(core point)**로 간주하고, 코어 포인트들끼리 인접하거나 연결되어 있으면 같은 군집으로 확장해 나가는 것이다 (Difference between K-Means and DBScan Clustering | GeeksforGeeks) (Difference between K-Means and DBScan Clustering | GeeksforGeeks). 주요 동작 과정은 다음과 같다 (Difference between K-Means and DBScan Clustering | GeeksforGeeks) (Difference between K-Means and DBScan Clustering | GeeksforGeeks):

  • 각 데이터 포인트에 대해 ε-이웃(neighborhood)을 조사하여 이웃의 갯수가 minPts 이상이면 코어 포인트, 미만인데 다른 코어 포인트의 이웃에 포함되면 경계 포인트(border point), 어느 코어의 이웃에도 속하지 않으면 **노이즈(이상치)**로 분류한다.
  • 코어 포인트들끼리는 근접해 있으면 서로 연결된 것으로 보고, 연결된 모든 코어 포인트들의 집합을 하나의 군집으로 정한다. 이 때 코어에 인접한 경계 포인트들도 해당 군집에 포함시킨다.
  • 모든 코어 포인트를 처리할 때까지 이 과정을 반복하면 최종 군집들이 형성되고, 노이즈로 분류된 점들은 어떤 군집에도 속하지 않은 채 남는다.

DBSCAN의 장점군집의 형태에 제약이 없다는 것이다. 밀도 기반이므로 원형이 아닌 임의 모양의 클러스터도 탐지할 수 있으며, 클러스터 사이의 좁은 통로로 연결된 데이터도 하나의 군집으로 묶을 수 있다 (Difference between K-Means and DBScan Clustering | GeeksforGeeks). 또한 군집의 개수를 자동으로 결정해주고, 밀도가 떨어지는 이상치들을 자연스럽게 제외하므로 노이즈 데이터에 강인하다는 장점이 있다 (Difference between K-Means and DBScan Clustering | GeeksforGeeks). 아래 그림은 DBSCAN을 활용해 밀도가 높은 두 영역을 군집으로 찾은 예시로, K-평균으로는 하나의 군집으로 묶기 어려운 비선형 형태의 클러스터도 DBSCAN은 잘 식별해냄을 보여준다.

(Clustering in Machine Learning | GeeksforGeeks) 밀도 기반 방법을 사용하면 위 그림처럼 불규칙한 모양의 데이터 밀집 영역도 하나의 클러스터로 검출할 수 있다. 초록색으로 색칠된 영역과 회색 영역은 각각 서로 다른 두 개의 군집에 해당하며, 주변의 듬성듬성 흩어진 검은 점들은 어느 군집에도 속하지 않는 노이즈(이상치)로 처리된 것임을 볼 수 있다. DBSCAN은 이렇듯 밀도가 높은 부분만 연결하여 군집화하기 때문에, 기존의 중심 기반 방법이 놓칠 수 있는 복잡한 형태의 군집까지도 발견하는 데 유리하다 (Clustering algorithms  |  Machine Learning  |  Google for Developers). 또한 노이즈에 해당하는 데이터 포인트를 배제함으로써 이상치 검출의 효과도 얻을 수 있다 (Difference between K-Means and DBScan Clustering | GeeksforGeeks).

한편, DBSCAN의 단점 및 한계로는, 데이터의 밀도 차이가 큰 경우 하나의 ε와 minPts 파라미터 세트로 모든 군집을 포착하기 어렵다는 점이 있다 (Difference between K-Means and DBScan Clustering | GeeksforGeeks). 예를 들어 어떤 군집은 촘촘하고 다른 군집은 희박하게 분포한 데이터셋에서는, ε를 작게 하면 희박한 군집이 여러 조각으로 갈라지고, ε를 크게 하면 촘촘한 군집 내부에 노이즈가 끼어드는 문제가 발생할 수 있다. 또한 데이터 차원이 매우 높아지면 거리 개념의 한계로 인해 밀도 기반 군집화 자체가 효과적이지 않을 수 있고 계산량도 증가하는 단점이 있다 (Difference between K-Means and DBScan Clustering | GeeksforGeeks). 마지막으로, 결과 품질이 ε와 minPts 설정에 민감하여, 도메인 지식이나 사전 실험을 통해 적절한 값을 찾아야 하는 실용상의 어려움도 있다. 그럼에도 DBSCAN은 클러스터의 개수를 모를 때임의 모양의 군집을 찾고 싶을 때, 그리고 이상치 제거가 중요할 때 유용하게 쓰이는 알고리즘이다.

3.3 계층적 클러스터링 (Hierarchical Clustering)

계층적 군집화는 서로 다른 규모의 군집을 계층 구조로 조직하여, 데이터 사이의 군집 관계를 트리 형태로 표현하는 방법이다. 일반적으로 **병합적 방법(AGNES)**과 **분할적 방법(DIANA)**의 두 가지 접근이 있다. 병합적 계층 군집화는 처음에는 모든 데이터를 각각 개별 군집으로 취급하다가 가장 유사한 군집 쌍부터 차례로 합쳐 나가 결국 하나의 군집이 될 때까지 진행하는 상향식(bottom-up) 방식이고 (계층적 군집화 - 위키백과, 우리 모두의 백과사전) (계층적 군집화 - 위키백과, 우리 모두의 백과사전), 분할적 군집화는 그 반대로 처음에 하나의 군집에 모아놓고 가장 응집력이 낮은 데이터부터 분리해 나가는 하향식(top-down) 방식이다. 병합적 방법이 더 일반적으로 사용되며, 이를 통해 생성된 **덴드로그램(dendrogram)**은 군집 간의 합쳐지는 순서를 나타내는 트리로서, 다양한 군집 개수에 대한 결과를 한 번에 담고 있다는 장점이 있다 (Clustering algorithms  |  Machine Learning  |  Google for Developers) (Clustering algorithms  |  Machine Learning  |  Google for Developers).

계층적 군집화의 핵심은 군집 간 거리(유사도)를 측정하는 방법, 즉 링케이지(linkage) 기준이다. 병합 과정에서 어떤 두 군집을 합칠지 결정하려면 현재 군집들 사이의 거리를 정의해야 하는데, 대표적인 방식으로 다음이 있다:

  • 단일 연결(single linkage): 두 군집 사이의 최단 거리 (가장 가까운 두 점 사이의 거리)로 정의.
  • 완전 연결(complete linkage): 두 군집 사이의 최장 거리 (가장 먼 두 점 사이의 거리)로 정의.
  • 평균 연결(average linkage): 군집 간 모든 짝의 평균 거리로 정의.
  • 와드 연결(Ward’s method): 군집 내부 분산 증가량으로 거리 정의 (두 군집을 합쳤을 때 SSE 증가량 기반).

연결 기준에 따라 덴드로그램 모양이 달라지며, 단일 연결은 긴 사슬형(cluster chaining) 군집을 만드는 경향이 있고, 완전 연결은 밀집된 구 형태의 군집을 선호하는 등 차이가 있다. 사용자들은 생성된 덴드로그램을 분석하여 적절한 군집 개수를 결정하거나, 원하는 계층 단계에서 트리를 잘라 군집화 결과로 활용한다. 계층적 군집화의 장점은 군집 수를 사전에 지정하지 않아도 되며, 클러스터들의 포괄적 관계를 볼 수 있어 데이터 구조에 대한 계층적 통찰을 제공한다는 점이다 (Chapter 21 Hierarchical Clustering | Hands-On Machine Learning ...). 특히 소규모 데이터에 대해서는 덴드로그램을 시각화하여 클러스터들 간의 거리와 결합 순서를 직접 확인함으로써 데이터의 구조적 패턴을 이해하기 쉽다. 또한 임의의 유사도/거리 척도를 사용할 수 있으므로, 수치형 데이터뿐 아니라 범주형 데이터 또는 편집거리와 같은 특수 거리 개념이 있을 때도 응용할 수 있다.

그러나 단점으로 연산 복잡도가 높다는 점을 들 수 있다. 병합적 방법은 일반적으로 데이터 개수 n에 대해 O(n²) 거리 계산을 수행하므로, 데이터가 수천만 개 이상으로 매우 큰 경우 현실적으로 계산이 어렵다 (Clustering algorithms  |  Machine Learning  |  Google for Developers). 또한 한 번 군집이 합쳐지거나 분할되면 이후 단계에서 되돌릴 수 없는 탐욕적(greedy) 절차이므로, 초기 합병 단계에서 잘못 묶인 군집은 최종 결과에 계속 영향을 미칠 수 있다 (How to understand the drawbacks of Hierarchical Clustering?). 그리고 결과로 얻어진 덴드로그램을 해석하여 최종 군집을 결정하는 것도 주관적일 수 있고, 명확한 “최적” 군집 개수를 알려주지 않는다는 한계도 있다. 그럼에도 불구하고 계층적 군집화는 데이터의 다층적 구조를 탐색해야 하는 경우나, 군집의 수를 사전 결정하기 어려운 경우에 기본 분석으로 자주 활용된다. 예를 들어 생물학 분야에서 계통수(cluster tree) 분석이나, 문헌 정보에서 주제별 계층적 분류를 할 때 유용하다 (Clustering algorithms  |  Machine Learning  |  Google for Developers).

3.4 가우시안 혼합 모델 (Gaussian Mixture Model)

**가우시안 혼합 모델(GMM)**은 확률론적 모델 기반의 클러스터링 기법으로, 데이터 분포를 여러 개의 가우시안 분포(정규분포)의 혼합으로 모델링한다 (Cluster analysis - Wikipedia) (Cluster analysis - Wikipedia). 즉, 각 클러스터를 하나의 가우시안 분포에 대응시키고, 데이터가 이러한 가우시안 혼합 분포로부터 생성되었다고 가정한다. GMM 클러스터링은 각 데이터 포인트가 각 가우시안 성분(군집)에 속할 확률을 계산한다는 점에서 소프트 클러스터링 방법이며, K-평균과 달리 데이터 점이 하나의 군집에 속하는 정도를 연속적인 값(확률)으로 표현한다.

모형은 수학적으로 다음과 같이 표현된다. 데이터 포인트 xx의 분포 P(x)P(x)를 K개의 가우시안 성분의 혼합으로 가정하면:

P(x)=∑j=1Kπj N(x∣μj,Σj)P(x) = \sum_{j=1}^{K} \pi_j \, \mathcal{N}(x \mid \mu_j, \Sigma_j)

여기서 πj\pi_jjj번째 가우시안 성분의 혼합 가중치(전체 데이터 중 해당 클러스터에 속할 사전확률), μj\mu_jΣj\Sigma_j는 해당 성분의 평균벡터와 공분산행렬이다. 이러한 모수들은 보통 EM 알고리즘(Expectation-Maximization)을 통해 추정된다. 요컨대, E-step에서 현재 모수로 각 데이터의 클러스터 소속 확률(책임도)을 계산하고, M-step에서 그 확률을 토대로 모수를 재계산하는 과정을 반복하여 최대 가능도 추정에 도달한다 ([1511.06335] Unsupervised Deep Embedding for Clustering Analysis). EM 알고리즘이 수렴하면 각 데이터에 대해 jj번째 군집에 속할 확률 P(z=j∣x)P(z=j \mid x)를 얻을 수 있고, 가장 큰 확률을 갖는 군집으로 데이터를 할당하면 하드 클러스터링 결과도 얻을 수 있다.

GMM의 장점은 유연한 군집 형상이 가능하다는 점이다. 각 군집을 임의의 공분산을 가진 가우시안으로 모델링하므로, 타원형 모양의 클러스터나 크기가 서로 다른 클러스터도 표현할 수 있다 (Exploring Clustering Algorithms: Explanation and Use Cases). 반면 K-평균은 등방성(방향성과 관계없이 동일한 분산)의 구형(cluster) 가정에 가까운데, GMM은 이를 일반화한 형태라 볼 수 있다. 또한 군집 할당이 확률로 나오기 때문에 데이터가 어느 군집에 얼마나 속하는지 소속도의 불확실성을 정량화할 수 있고, 군집화 결과에 대한 통계적 추론(예: 우도 평가, BIC/AIC를 활용한 최적 군집 수 결정 등)이 가능하다. 이러한 이유로 GMM은 클러스터링과 밀도 추정을 겸하는 용도로 사용되기도 한다. 단점으로는, EM 알고리즘 특성상 초기값에 민감하여 잘못 초기화하면 수렴이 느리거나 잘못된 최적해에 도달할 수 있다. 또한 각 클러스터에 가우시안 분포를 가정하므로 실제 데이터 분포가 가우시안 혼합 형태에서 크게 벗어난 경우 성능이 저하될 수 있다. 그리고 군집 수 K를 여전히 지정해야 하므로 모델 선택 문제가 남아 있으며, EM 과정의 계산 비용이 K-평균보다 높아 대규모 데이터셋에서는 다소 무거울 수 있다 (What are the advantages and disadvantages of using hierarchical ...).

실전에서 GMM을 사용하려면 초기 모수 설정을 여러 번 시도하거나 K-평균 결과로 초기화하는 등의 기법이 활용되며, 모델 선택을 위해 BIC실루엣 계수 같은 지표로 다양한 K를 비교해 최적의 혼합 개수를 찾는다. GMM은 클러스터가 비교적 정규분포 형태로 분포하고 있다고 여겨지는 데이터 (예: 동일 종류 제품의 측정 데이터 등)에 적합하며, K-평균보다 복잡한 군집 구조를 포착해야 하는 경우에 유용하다.

4. 클러스터링 평가 지표

클러스터링 결과의 품질을 평가하는 것은 중요한 과제이다. 그러나 군집화는 지도학습처럼 정답 레이블이 없어, 평가 지표 또한 레이블 정보의 사용 여부에 따라 두 종류로 나뉜다:

  • 내부 평가 지표(Internal Validation): 클러스터링된 결과 자체만을 가지고 군집의 응집도와 분리도를 평가하는 지표들이다. 주어진 군집화 결과에서 군집 내 데이터들은 얼마나 가까운지(cohesion) 그리고 **다른 군집과는 얼마나 떨어져 있는지(separation)**를 측정하며, 레이블 등 외부 정보는 사용하지 않는다 (Evaluation Metrics for Machine Learning Models). 군집 내 거리가 짧고 군집 간 거리가 멀수록 더 나은 군집화로 간주된다. 대표적인 내부 평가 지표로 실루엣 계수(Silhouette coefficient), Davies-Bouldin 지수, Dunn 지수 등이 있다 (Evaluation Metrics for Machine Learning Models) (Evaluation Metrics for Machine Learning Models). 이러한 지표들은 주어진 클러스터링의 밀집도와 분리도를 수치화하여, 군집 개수 선택이나 알고리즘 성능 비교에 활용된다. 예를 들어 실루엣 계수는 한 데이터와 같은 군집 내 다른 데이터들과의 평균거리 a와 가장 가까운 다른 군집과의 평균거리 b를 이용해 s=b−amax⁡(a,b)s = \frac{b - a}{\max(a,b)} 형태로 계산하며, –1에 가까우면 잘못 할당된 것이고 1에 가까우면 적절히 군집화되었음을 의미한다 (Evaluation Metrics for Machine Learning Models) (Evaluation Metrics for Machine Learning Models). 실루엣 값은 모든 데이터에 대해 구해 평균값으로 군집화 품질을 평가하는데, 0.5 이상이면 비교적 뚜렷한 군집 구조로 평가한다. 이 외에도 **DBI (Davies-Bouldin Index)**나 Dunn Index 등은 군집 간 중심거리 대비 군집 내 분산 등을 고려하여 계산하며, 값이 낮을수록 (DBI의 경우) 혹은 높을수록 (Dunn Index) 군집화가 잘 되어 있음을 나타낸다.
  • 외부 평가 지표(External Validation): 정답 레이블이나 기준 군집이 있을 때, 군집화 결과와 얼마큼 일치하는지를 평가하는 지표들이다 (Evaluation Metrics for Machine Learning Models) (Evaluation Metrics for Machine Learning Models). 예를 들어 클러스터링 결과를 실제 카테고리 레이블과 비교하거나, 사람이 부여한 정답 군집과 대조하여 군집의 정확도나 **순도(purity)**를 측정한다. **퓨리티(Purity)**는 각 군집에서 가장 빈도가 높은 실제 클래스의 비율을 평균하여 계산하며 0에서 1 사이 값으로 1에 가까울수록 한 군집이 하나의 실제 클래스로 잘 대응됨을 의미한다 (Evaluation Metrics for Machine Learning Models) (Evaluation Metrics for Machine Learning Models). **Rand 지수 (RI)**는 데이터 점 쌍에 대해 군집화 결과와 레이블이 같은지 여부를 기준으로 일치율을 계산하는데, 0~1 사이에서 1에 가까울수록 잘 맞는 군집화이다 (Evaluation Metrics for Machine Learning Models) (Evaluation Metrics for Machine Learning Models). 이때 랜덤하게 군집화해도 어느 정도 일치도가 나오는 문제를 보정한 **조정 랜드 지수(Adjusted Rand Index)**도 널리 쓰인다 (Evaluation Metrics for Machine Learning Models). 그 밖에 **NMI (Normalized Mutual Information)**나 ARI (Adjusted Rand Index), F-measure, Jaccard 계수 등이 외부 평가에 활용된다 (Evaluation Metrics for Machine Learning Models) (Evaluation Metrics for Machine Learning Models). 외부 지표들은 군집화 결과를 실제 기준과 직접 비교해주므로, 만약 레이블이 있는 데이터에 클러스터링을 적용한 경우나 시뮬레이션 데이터 등에서는 유용하게 쓰인다. 다만 일반적인 클러스터링 문제는 레이블이 없기 때문에, 외부 지표는 알고리즘 개발자의 평가용이나 레이블이 존재하는 상황에서의 검증용으로 제한적으로 사용된다.

클러스터링 평가에서는 한 가지 지표만 보기보다는 여러 지표를 함께 참고하거나, 도메인 전문가의 해석과 병행하는 것이 중요하다. 내부 지표가 높다고 해서 반드시 의미 있는 군집이 형성된 것은 아닐 수 있고, 외부 지표는 레이블이 편향되어 있는 경우 오히려 오도할 수 있다. 따라서 실루엣 지수 등의 내부 평가로 최적 군집 수를 결정한 다음, 해당 결과를 해석하고 필요하면 외부 정보를 활용해 검증하는 식의 접근이 일반적이다. 예를 들어 엘보(elbow) 기법은 군집 수에 따른 SSE(클러스터 내부 제곱합)의 감소 그래프를 보고 적절한 군집 수를 찾는 방법인데, 이것도 내부 평가의 한 형태로 볼 수 있다. 이렇듯 여러 평가 지표와 방법을 종합적으로 고려하여 클러스터링의 품질과 유의미성을 판단해야 한다.

5. 고급 기법 및 최신 동향

5.1 딥러닝 기반 클러스터링

최근 머신러닝 분야의 발전과 함께 딥러닝을 활용한 클러스터링 기법, 이른바 **딥 클러스터링(deep clustering)**이 활발히 연구되고 있다. 전통적인 군집화 알고리즘들은 주어진 입력 공간에서 거리나 밀도를 기반으로 군집을 찾지만, 딥러닝 기반 방법데이터의 표현(feature representation) 자체를 학습하면서 군집화 성능을 향상시키고자 한다 ([1511.06335] Unsupervised Deep Embedding for Clustering Analysis). 예를 들어, 복잡한 이미지 데이터의 경우 픽셀 공간 대신 **신경망이 학습한 잠재 공간(latent space)**에서 군집화를 수행하면 더욱 잘 분리되는 군집을 얻을 수 있다. 이러한 아이디어를 구현한 대표적인 방법이 2016년에 제안된 DEC (Deep Embedded Clustering) 알고리즘이다 ([1511.06335] Unsupervised Deep Embedding for Clustering Analysis). DEC는 오토인코더(autoencoder) 신경망을 통해 고차원 데이터를 저차원의 잠재 벡터로 표현학습(representation learning)하고, 동시에 그 잠재 공간에서 K-평균 유사 군집화를 수행하도록 신경망을 훈련시킨다 ([1511.06335] Unsupervised Deep Embedding for Clustering Analysis). 구체적으로, 초기에는 오토인코더로 학습한 잠재 벡터들을 K-평균으로 클러스터링하여 초기 군집centroid를 얻은 뒤, 이후 학습 과정에서 클러스터 할당 확률 분포목표 분포 사이의 KL 발산을 최소화하도록 신경망의 가중치를 미세 조정한다. 이렇게 함으로써 신경망이 군집에 보다 최적화된 표현을 학습하게 되고, 최종적으로 높은 정확도의 군집화를 달성할 수 있다. 실제 DEC 등의 기법은 MNIST 손글씨 이미지 데이터에 대해 96% 이상의 정확도로 레이블 없는 군집화를 구현해내어 지도학습에 필적하는 성과를 보고하기도 했다 (An Overview of Deep Learning Based Clustering Techniques | Divam Gupta). 이는 딥러닝이 가진 복잡한 패턴 학습 능력이 군집화에도 유용함을 보여주는 예시이다.

딥러닝 기반 클러스터링에는 DEC 외에도 다양한 접근이 있다. **변분 오토인코더(VAE)**와 GMM을 결합한 VaDE (Variational Deep Embedding) 기법, 자기훈련 방식을 활용한 DAC (Deep Adaptive Clustering), 그래프 신경망을 이용한 군집화, **자기지도 학습(self-supervised learning)**으로 표현을 학습한 후 K-평균을 적용하는 방법 등 여러 파생 연구들이 등장하고 있다 ([NeurIPS 2021] VaDE 기반의 Deep Clustering Review - 네이버 포스트) ([2210.04142] Deep Clustering: A Comprehensive Survey). 딥러닝 기반 방법들은 대체로 표현학습 + 군집화의 통합이라는 공통점을 가지며, 특히 이미지나 텍스트같이 고차원 데이터에서 유망한 결과를 보여준다. 다만 완전한 비지도 학습 설정에서 딥러닝 모델을 학습시키는 일은 어려운 문제이며, 많은 경우 하이퍼파라미터 민감도나 훈련 불안정성 등의 도전과제가 있다. 예를 들어 복잡한 이미지인 CIFAR-10이나 ImageNet 데이터셋에서는 아직 만족스러운 군집화 정확도가 나오지 않으며 MNIST 등에서 보인 성과와 차이가 크다는 보고가 있다 (An Overview of Deep Learning Based Clustering Techniques | Divam Gupta). 그럼에도 불구하고 딥 클러스터링은 꾸준한 연구가 진행 중인 분야로, 반정형적 데이터나 다양한 도메인 데이터에 대해 지도 정보 없이 특징을 학습하고 군집화할 수 있다는 점에서 차세대 클러스터링 기술로 주목받고 있다.

5.2 시계열 데이터 클러스터링

지금까지는 주로 정적인 데이터의 군집화를 다루었지만, **시간에 따른 연속 데이터(시계열)**의 군집화도 중요한 문제 영역이다. 시계열 데이터는 각 객체가 시간 축을 따라 배열된 값들의 연속으로 표현되므로, 전통적인 거리 기준으로 비교하기 어려운 특징이 있다. 이러한 시계열 클러스터링에서는 일반적으로 두 시계열 간 유사도를 측정하는 특별한 거리 함수나, 시계열의 특성을 요약하는 피처를 활용한다.

가장 널리 쓰이는 방법 중 하나는 동적 시간 왜곡(DTW, Dynamic Time Warping) 거리를 사용하는 것이다 (Time series clustering. Overview of the various methods | by Sia AI | Medium). DTW는 두 시계열의 길이가 달라도 유연하게 정렬하여 최적의 매칭을 찾아 거리를 계산해주는 알고리즘으로, 단순한 시점별 비교보다 시간축 왜곡을 허용해 더 의미 있는 유사도를 산출한다. 예를 들어 두 사람의 걸음걸이 데이터를 비교할 때 한쪽이 조금 빠르게 걷더라도 DTW는 속도 차이를 보정하여 유사한 패턴이면 거리를 작게 산출한다. DTW 거리나 그 변형을 이용하면, 시계열 데이터에 K-평균이나 계층적 군집화 같은 일반 알고리즘을 적용할 수 있다. 다만 시계열 데이터의 쌍끼리 DTW 거리를 모두 계산하면 계산량이 많아질 수 있어, 수백만 개 이상의 시계열에는 효율적인 샘플링이나 저차원 임베딩 기법과 함께 사용되기도 한다 (Time series clustering. Overview of the various methods | by Sia AI | Medium).

시계열 군집화의 또 다른 접근은 각 시계열을 어떤 모델에 맞추고 모델 파라미터를 비교함으로써 유사도를 판단하는 것이다. 예를 들어 각 시계열에 ARIMA(자기회귀 적분 이동평균) 모델을 적합하고 추정된 모수들 간의 거리를 정의하여 군집화하는 방법이나, **숨은 마코프 모델(HMM)**을 학습시켜 시계열 패턴을 캡처하고 모델 간 유사도를 비교하는 방법이 연구되었다 (Time series clustering. Overview of the various methods | by Sia AI | Medium). 이러한 모델 기반 시계열 군집화는 모델이 데이터의 동적 특성을 요약해주므로 노이즈에 강하고 시간 변동 패턴을 잘 반영할 수 있지만, 모델 학습에 시간이 걸리고 모델 가정이 맞지 않으면 오히려 성능이 떨어질 수 있다 (Time series clustering. Overview of the various methods | by Sia AI | Medium). 또한 많은 시계열에 각각 모델을 학습시키는 것은 대용량 데이터에서는 비효율적일 수 있어, 실용적으로는 자주 쓰이지 않는다.

보다 현실적인 방법으로, 시계열의 특징(feature)을 추출하여 일반적인 군집화 알고리즘에 넣는 접근이 있다 (Time series clustering. Overview of the various methods | by Sia AI | Medium) (Time series clustering. Overview of the various methods | by Sia AI | Medium). 시계열의 특징이라 함은 예를 들어 **추세(trend)**의 유무나 기울기, 계절성(seasonality) 주기, 자기상관성(autocorrelation) 지수, 통계적 분포(왜도, 첨도) 등의 값들이다. 긴 시계열을 이러한 몇 가지 요약 통계로 축약하여 각 시계열을 하나의 특징 벡터로 표현한 뒤, 이 벡터들에 대해 K-평균이나 계층적 군집화를 수행하면 된다. 이 방법은 시계열의 길이가 길거나 복잡해도 고정된 차원의 특징 공간으로 변환하기 때문에 효율적이며, 도메인 전문가가 중요한 특징을 선정해주면 군집 해석도 수월하다. 다만 특징 선택에 따라 결과가 크게 달라질 수 있고, 중요한 동적 패턴을 일부 잃어버릴 위험도 있다.

최근에는 딥러닝을 활용한 시계열 군집화도 시도되고 있다. 예를 들어 **시계열 오토인코더(sequence autoencoder)**나 시계열 변환기(model) 등을 사용해 시계열을 잠재 벡터로 임베딩한 후 이 벡터들끼리 군집화를 하거나, 시계열 데이터를 입력으로 하는 사전 학습된 시계열 임베딩 모델을 활용해 유사도를 측정하는 방식이다. 이러한 방법들은 지도학습 없이 복잡한 패턴의 시계열 특징을 학습할 수 있다는 장점이 있으나, 여전히 연구 단계에 있다.

요약하면, 시계열 클러스터링에서는 적절한 유사도 정의가 핵심이다. DTW와 같이 시계열 특화 거리를 쓰거나, 특징 추출이나 모델화를 통해 간접적으로 비교하는 등 다양한 방법이 있으며, 데이터 특성에 맞게 방법을 선택해야 한다. 또한 긴 시계열 데이터의 경우 차원 감소부분 시계열 군집화(세그먼트 단위 군집화) 등을 병행하여 실용성을 높이는 방향으로 발전하고 있다.

6. 정리 및 참고 자료

클러스터링은 비지도 학습의 대표적인 기법으로, 데이터에 내재한 구조를 발견하고 요약하는 데 필수적인 도구이다. 이번 보고서에서는 클러스터링의 기본 개념부터 주요 알고리즘(K-평균, DBSCAN, 계층적 군집화, GMM)의 원리와 장단점을 살펴보고, 군집화 결과를 평가하는 지표들과 최근의 심층 학습 기반 기법, 시계열 군집화 동향까지 개괄하였다. 요약하자면, 하나의 완벽한 클러스터링 알고리즘은 존재하지 않으며, 데이터의 특성과 목적에 따라 적절한 방법을 선택하는 것이 중요하다. 예컨대, 군집의 개수가 명확하고 데이터 양이 많을 때는 K-평균이 유용하고, 복잡한 형태의 패턴이나 이상치 탐지가 중요하면 DBSCAN이 효과적일 수 있다. 계층적 군집화는 데이터의 다층적 관계를 이해하는 데 도움이 되며, 확률 모델 기반 접근은 클러스터의 통계적 속성을 활용할 수 있다. 더 나아가 딥러닝 기술의 접목으로 클러스터링은 고차원 데이터 영역에서도 지속적으로 발전하고 있으며, 시계열같이 전문적인 데이터 유형에 대한 군집화 기법도 연구가 활발하다.

데이터 과학 전공자로서 클러스터링을 활용할 때는, 우선 문제에 적합한 알고리즘을 선택하고 파라미터를 조율하는 실무 감각이 필요하다. 또한 군집화는 정답이 없기 때문에 결과를 다각도로 평가하고 해석하는 능력이 중요하다. 가장 중요한 것은 클러스터링 결과가 도메인 의미를 갖는지를 판단하는 것이며, 이를 위해 알고리즘적 지표와 더불어 결과에 대한 분야 전문가의 해석을 결합하는 것이 바람직하다. 클러스터링은 새로운 발견의 출발점이 되는 기법인 만큼, 개념을 제대로 이해하고 다양한 방법론의 강약점을 숙지하여 데이터에 맞게 응용하는 것이 요구된다.

참고자료:

  1. Xu, D. & Tian, Y. (2015). A Comprehensive Survey of Clustering Algorithms. Annals of Data Science, 2(2), 165-193 (Clustering algorithms  |  Machine Learning  |  Google for Developers) – 다양한 클러스터링 알고리즘을 정리한 종합 설문 논문으로, 알고리즘들을 모델 관점에서 분류하고 비교함.
  2. Wikipedia. Cluster analysis – 클러스터링 개념과 방법론에 대한 백과사전식 설명 (Cluster analysis - Wikipedia) (Cluster analysis - Wikipedia).
  3. GeeksforGeeks. Clustering in Machine Learning – 클러스터링의 정의와 활용 사례, 주요 유형 설명 (Clustering in Machine Learning | GeeksforGeeks) (Clustering in Machine Learning | GeeksforGeeks).
  4. Samhita Alla (2020). Evaluation Metrics for Clustering – 군집화 평가 지표 (실루엣 계수, Dunn, DBI 등 내부 지표와 Rand Index, NMI 등 외부 지표) 설명 (Evaluation Metrics for Machine Learning Models) (Evaluation Metrics for Machine Learning Models).
  5. Xie, J., Girshick, R., & Farhadi, A. (2016). Unsupervised Deep Embedding for Clustering Analysis (DEC) – 딥러닝을 이용한 클러스터링 알고리즘 DEC 제안 논문 ([1511.06335] Unsupervised Deep Embedding for Clustering Analysis).
  6. Sia, I. (2020). Time Series Clustering – Overview of Methods – 시계열 데이터 군집화 방법들 (DTW, 모델 기반, 특징 기반 등)에 대한 블로그 글 (Clustering in Machine Learning | GeeksforGeeks) (Time series clustering. Overview of the various methods | by Sia AI | Medium).
728x90