"이 유저는 어느 세그먼트인가요?"의 답이 늘 한 개여야 할 이유가 있을까요. 평일엔 직장인 캠페인, 주말엔 부모 캠페인이 잘 듣는 같은 유저. k-means는 한 세그먼트만 강제 배정하지만, 실제 행동은 여러 세그먼트의 혼합입니다. Gaussian Mixture Model(GMM)·Latent Class Analysis 같은 mixture model은 유저의 확률적 멤버십을 추정합니다. 같은 행동 데이터에서 더 풍부한 세그멘테이션을 빼내는 도구.
1. k-means의 한계 — hard assignment
k-means는 마케팅 BI에서 가장 흔한 클러스터링 도구입니다. 단순하고 빠르고 운영 가벼움. 그런데 한 가지 가정이 강합니다.
모든 유저를 정확히 한 세그먼트에 hard assign.
이 가정의 운영 한계:
- 경계 유저 — A·B 두 세그먼트 사이의 유저도 한쪽에 강제 박힘
- 혼합 행동 — 직장인 + 부모 행동을 섞은 유저는 한 세그먼트만 받음
- 불확실성 정보 손실 — "이 유저가 A 세그먼트일 확률"의 정보 사라짐
마케팅 캠페인 타겟팅에서 이 한계가 비용을 만듭니다.
- 경계 유저에 한 메시지만 보내면 다른 효과를 놓침
- 혼합 행동 유저는 두 캠페인 모두에 적합한데 한 쪽만 받음
- 캠페인 평가 시 세그먼트 멤버십이 흔들리면 결과 해석이 깨짐
mixture model은 이 hard assignment를 soft probabilistic membership으로 바꿉니다. 같은 데이터에 더 풍부한 정보.

k-means는 유저를 한 점으로, GMM은 다중 세그먼트의 확률 벡터로 표현. 경계 유저·혼합 행동 유저의 정보가 살아남는다.
📌 이 글에서 다루는 것
이 글은 Gaussian Mixture Model을 중심으로 mixture model의 마케팅 적용을 정리합니다. 변형(Latent Class Analysis·Bayesian GMM)도 짧게. k-means를 대체하는 게 아니라 운영 자리에 따라 골라 쓰는 도구로 봐야 합니다.
2. GMM의 한 줄 직관
Gaussian Mixture Model의 한 줄 직관:
데이터를 K개의 Gaussian 분포의 혼합으로 모델링. 각 유저는 K개 분포 중 어디에서 나왔을 확률을 가진다.
수식으로:
여기서 는 세그먼트 의 사전 비중, 는 평균·공분산 가진 Gaussian. 각 유저 의 사후 멤버십:
직관: 분자는 "세그먼트 가 이 유저를 얼마나 잘 설명하는가", 분모는 모든 세그먼트의 설명력 합. 이 비율이 사후 멤버십 확률.
각 유저가 모든 세그먼트에 대해 멤버십 확률을 받습니다. 합이 1.
운영적 의미:
- 경계 유저 — Pr(A) = 0.55, Pr(B) = 0.45 같이 표현
- 혼합 행동 — Pr(직장인) = 0.4, Pr(부모) = 0.6
- 명확한 유저 — Pr(A) = 0.95, Pr(나머지) = 0.05
3. EM 알고리즘 — GMM이 파라미터를 학습하는 방법
GMM을 학습시키는 엔진이 EM(Expectation-Maximization) 알고리즘입니다. 왜 EM인가를 이해하면 GMM이 언제 잘 작동하고 언제 실패하는지가 보입니다.
E-step: "각 점이 어느 클러스터에 속할 확률 추정"
현재 파라미터( , , )를 고정한 채, 모든 유저에 대해 사후 멤버십 확률을 계산합니다.
직관: "지금 알고 있는 클러스터 모양으로 봤을 때, 이 유저는 어느 클러스터에서 나왔을 것 같나?" 를 각 유저마다 계산.
M-step: "그 확률로 가중평균해 파라미터 업데이트"
E-step에서 계산한 를 가중치로 삼아 파라미터를 다시 추정합니다.
직관: "클러스터 k에 속할 확률이 높은 유저들을 더 많이 반영해서 클러스터 중심·분산을 다시 계산." 가 클수록 그 유저가 클러스터 k의 파라미터 추정에 더 많이 기여.
이 E·M 두 단계를 수렴할 때까지 반복합니다. 수렴 보장이 있고(log-likelihood 단조 증가), 구현이 단순합니다.
⚠️ EM의 한계 — 초기화 민감도
EM은 로컬 최적해에 수렴합니다. 초기 파라미터 설정에 따라 결과가 달라집니다. sklearn의
GaussianMixture는 기본으로n_init=1이지만, 실무에서는n_init=10처럼 여러 번 초기화해 가장 좋은 결과를 고르는 게 안전합니다.
4. K(세그먼트 수)를 어떻게 정하나 — BIC 실예시
GMM의 가장 어려운 자리. K가 너무 작으면 세분화 부족, 너무 많으면 운영 부담.
BIC·AIC 수식
은 likelihood, 는 파라미터 수, 은 데이터 수. BIC는 모델 복잡도에 페널티를 줍니다. AIC보다 보수적 — 작은 K를 더 선호.
K=2~10 모델 fit 후 BIC 곡선 코드
아래 코드가 K를 자동으로 탐색하고 BIC 곡선을 그려 "꺾이는 지점"을 찾아줍니다.
python
Top comments (0)