데이터 반출 없는 다기관 연합 인공지능 학습 플랫폼

데이터 분석/군집화

군집 개수 미리 정하지 않고 찾기: 중국집 프로세스

FedTensor 2026. 8. 6. 16:01

군집의 개수($K$)를 미리 정하지 않고 데이터에 맞게 자동으로 찾아내는 기법을 통계학에서는 무한 차원 베이지안 기법(Nonparametric Bayesian)이라고 부릅니다.

 

이 개념을 가장 직관적으로 이해할 수 있는 대표적인 비유가 바로 '중국집 프로세스(Chinese Restaurant Process, CRP)'입니다.

핵심 아이디어: "새 손님은 어느 테이블에 앉을까?"

손님(데이터)이 무한히 큰 중국집에 한 명씩 들어온다고 가정해 봅시다. 이 중국집에는 이미 몇 개의 테이블(군집)이 차 있고, 손님이 앉아 있습니다.

 

새로 들어온 손님(새로운 데이터 포인트)은 다음 두 가지 선택지 중 하나를 확률적으로 선택합니다.

  1. 기존 테이블에 합석하기: 손님이 많이 앉아 있는 인기가 많은 테이블일수록 앉을 확률이 높습니다. ("부익부 빈익빈" 원리)
  2. 새로운 빈 테이블에 혼자 앉기: 일정 확률로 기존 테이블을 마다하고 새로운 테이블(새 군집)을 개설합니다.
[기존 테이블 1] (4명)  ──>  새 손님이 앉을 확률: 높은 편
[기존 테이블 2] (2명)  ──>  새 손님이 앉을 확률: 중간
[새 빈 테이블 ] (0명)  ──>  새 손님이 앉을 확률: 알파(α)에 의해 결정!

여기서 새 테이블을 만들 확률을 결정하는 변수를 $\alpha$ (하이퍼파라미터)라고 합니다.

  • $\alpha$가 크면: 새로운 군집이 잘 생겨서 전체 군집 개수가 늘어납니다.
  • $\alpha$가 작으면: 기존 군집에 자꾸 합석하여 군집 개수가 적게 유지됩니다.

깁스 샘플링과 결합된 작동 방식

이 비유를 '카페 손님(키, 몸무게)' 예시에 적용하면 다음과 같이 작동합니다.

1. 초기 상태

군집 개수를 $K=4$로 정하지 않습니다. 첫 손님은 $1$번 군집에 넣고, 두 번째 손님부터는 확률적으로 기존 군집에 넣거나 새 군집을 생성하면서 무작위로 초기 할당합니다.

2. 깁스 샘플링 반복 (각 손님마다 수행)

손님 A(키 $185\text{cm}$, 몸무게 $100\text{k}\text{g}$)의 군집 라벨을 새로 갱신할 때, 선택지가 $K$개가 아니라 $K+1$가 됩니다.

  1. 기존 군집들(1 ~ $K$)의 확률 계산:
    • 손님 A의 체격이 해당 군집의 [키, 몸무게] 분포와 얼마나 잘 맞는지(유도) $\times$ 현재 그 군집에 속한 손님 수(인기)
  2. 아예 새로운 군집($K+1$)의 확률 계산:
    • 손님 A가 기존 군집들과 전혀 안 맞을 가능성 $\times$ 새 테이블 개설 하이퍼파라미터 ($\alpha$)
  3. 라벨 부여 및 군집 수 변동 (라벨 할당 후 군집 생성/소멸 처리):
    • 구한 확률로 주사위를 던져 손님 A에게 라벨을 부여합니다.
    • 만약 손님 A가 새로운 군집($K+1$)으로 뽑히면, 전체 군집 수가 자동으로 $1$개 증가합니다.
    • 반대로 어떤 군집에 남아있던 마지막 손님이 다른 군집으로 이동하여 멤버가 $0$명이 되면, 그 군집은 자동으로 소멸합니다.

요약 및 특징

구분 고정 군집 (K 지정) 가변 군집 (CRP 기반 베이지안)
군집 개수 사람이 $K=4$ 등으로 직접 지정 데이터 구조에 따라 스스로 유연하게 증감
선택지 $1, 2, \dots, K$ 중에서 선택 $1, 2, \dots, K$ + [새 군집 $K+1$]
장점 계산이 상대적으로 단순함 군집 수를 몰라도 되며, 데이터가 늘어나면 군집도 자연스럽게 분화됨

 

결국 군집 개수를 정하지 않는 깁스 샘플링은 "기존 군집에 들어갈 적합도/인기도"와 "새 군집을 만들 확률($\alpha$)"을 매 순간 비교하면서, 데이터의 특성에 가장 잘 맞는 최적의 군집 개수와 구조로 수렴해 나가는 방식입니다.