
실무에서 군집화가 필요한 이유
비지도학습은 “정답(label)”이 없어서 성능을 바로 채점하기 어렵습니다. 그럼에도 군집화를 쓰는 이유는 명확합니다.
- 고객 세그먼트 찾기: VIP/이탈 위험/신규 유입/가격 민감군 등
- 이상 탐지: 결제 사기, 센서 고장, 비정상 트래픽
- 데이터 압축/요약: 수십만 포인트를 몇 개의 군집으로 요약해 보고서/의사결정에 활용
- 후속 모델의 전처리: 군집 결과를 “파생 피처”로 만들어 지도학습 성능을 끌어올리기도 합니다.
핵심은 한 문장으로 정리됩니다.
군집화는 데이터를 비슷한 특성끼리 묶어 숨은 구조를 드러내는 것입니다.
1) “유사성”은 누가 정의하는가? → 하이퍼파라미터가 정의합니다
비지도학습에서 가장 중요한 포인트는, 유사성의 기준을 사람이 정해줘야 한다는 점입니다.
그 기준이 바로 하이퍼파라미터입니다.
하이퍼파라미터가 하는 일(쉽게 말해)
- “어느 정도 가까우면 같은 그룹인가?”
- “군집 중심은 몇 개로 할까?”
- “밀집이라고 부를 최소 기준은 무엇인가?”
- “확률 분포를 몇 개 섞여 있다고 볼까?”
- “밀도 계산 범위를 얼마나 넓게 볼까?”
즉 하이퍼파라미터는 모델의 ‘해석 렌즈’ 역할을 합니다.
정답이 없기 때문에 이 렌즈가 바뀌면 결과 자체가 바뀌는 것이 정상입니다.
2) 알고리즘별 “언제 쓰고/언제 망하는지” 사례로 이해하기
(A) K-Means: “가장 가까운 중심점에 배정”
개념 핵심
K-Means는 데이터를 K개의 중심점(centroid)으로 대표하게 만들고,
각 점을 가장 가까운 중심점에 반복적으로 배정하면서 수렴합니다.
실무에서 잘 먹히는 상황
- **군집 모양이 원형(동그랗게 뭉침)**에 가깝다
- 군집 간 거리 차이가 어느 정도 존재한다
- 데이터가 크고 빠르게 군집화가 필요하다
잘 망하는 대표 상황(중요)
- 타원형/길쭉한 군집
- 예: 길게 늘어난 고객 행동 패턴(“조용히 늘어난 구매액” 같은 흐름)
- K-Means는 “원형 거리”로 나누기 때문에 긴 타원을 잘못 자릅니다.
- 스케일이 다른 피처
- 예: 구매금액(0~수천)과 방문횟수(0~50)를 그대로 넣으면
구매금액이 거리 계산을 압도합니다. - 그래서 StandardScaler가 사실상 필수입니다.
- 이상치(outlier)
- 중심점은 평균 기반이라 이상치가 있으면 중심이 끌려갑니다.
실무 팁
- KMeans는 “대충 빠르게 나누고 싶을 때” 좋은 1차 선택입니다.
- 하지만 비원형, 밀도 불균형, 이상치 많음이면 다른 알고리즘을 고려합니다.
(B) GMM: “여러 개의 정규분포가 섞여 있다”
개념 핵심
GMM은 데이터를 “원형 군집”으로 보지 않고
여러 개의 정규분포(가우시안)가 섞여 있다고 가정합니다.
- K-Means가 “거리로 가장 가까운 중심”이면
- GMM은 “확률적으로 이 분포에 속할 가능성”으로 할당합니다.
실무에서 강한 상황
- 군집이 타원형으로 늘어져 있을 때
- 같은 군집이라도 “조금 겹치는 영역”이 존재할 때
(GMM은 “소속 확률”을 가질 수 있어 더 자연스럽습니다)
한계(주의)
- 군집 개수(n_components) 를 지정해야 합니다.
- 이상치에 아주 강한 편은 아닙니다(완전 강력하진 않음).
- “정규분포 혼합” 가정이 데이터와 너무 다르면 결과가 흔들릴 수 있습니다.
(C) DBSCAN: “밀집된 곳은 군집, 듬성듬성은 노이즈”
개념 핵심
DBSCAN은 거리보다 밀도를 봅니다.
- eps(입실론): “주변으로 몇 만큼을 이웃으로 볼 것인가”
- min_samples: “이웃이 몇 개 이상이면 핵심(Core)인가”
핵심 포인트 개념이 정말 중요합니다.
- Core point(핵심): eps 안에 min_samples 이상 이웃이 있는 점
- Border point(경계): 스스로는 핵심이 아니지만 핵심에 붙어 있는 점
- Noise(노이즈): 핵심과도 연결되지 않는 점
DBSCAN이 압도적으로 좋은 상황(대표 사례)
- 도넛 모양/꼬리 모양(make_circles 같은 데이터)
- 클러스터가 원형이 아닌 “자유형”일 때
- 이상치가 섞여 있어 “노이즈로 분리”하고 싶을 때
DBSCAN이 힘든 상황
- 밀도가 군집마다 크게 다른 경우
- 어떤 군집은 빽빽하고 어떤 군집은 듬성하면
eps를 하나로 통일하기 어렵습니다.
- 어떤 군집은 빽빽하고 어떤 군집은 듬성하면
- 고차원에서 거리 기반 이웃 계산이 불안정해져 성능이 흔들릴 수 있습니다.
(D) Mean Shift: “밀도가 높은 봉우리로 올라가 군집 중심을 찾는다”
개념 핵심
Mean Shift는 “산을 오르는 방식”으로 이해하면 쉽습니다.
- 각 데이터 포인트가 주변(반경) 내 데이터들을 보고
- 가장 밀도가 높은 방향으로 조금씩 이동
- 결국 밀도의 봉우리(peak)에 모이고
- 같은 봉우리에 모인 것끼리 같은 군집이 됩니다.
여기서 Bandwidth(대역폭) 가 “주변을 얼마나 넓게 볼지”를 결정합니다.
3) 추가 문제(Mean Shift Bandwidth) — 왜 군집 수가 줄어드는가?
문제
Mean Shift에서 Bandwidth가 커지면 어떻게 될까요?
정답: 더 적은 수의 큰 군집이 생성될 가능성이 높습니다.
직관적 해설(입문자 버전)
Bandwidth는 “현미경 배율”입니다.
- Bandwidth가 작으면
아주 좁은 범위만 봅니다 → 작은 봉우리도 각각 따로 보입니다
→ 군집이 쪼개져 많아집니다 - Bandwidth가 크면
넓은 범위를 한 번에 봅니다 → 주변 봉우리들이 하나로 뭉개져 보입니다
→ 군집이 합쳐져 적어집니다
Bandwidth ↑ → 더 넓게 본다 → 봉우리들이 합쳐진다 → 군집 수 ↓
4) 실루엣 계수: “군집이 얼마나 깔끔하게 분리됐는가”
실루엣 계수는 다음 질문을 수치로 답합니다.
- 같은 군집 안에서는 얼마나 가깝나? (a(i))
- 다른 군집과는 얼마나 멀리 떨어져 있나? (b(i))
값은 -1 ~ 1이고,
- 1에 가까울수록: “내 군집 안은 촘촘, 다른 군집은 멀다”
- 0에 가까울수록: “경계에 걸쳐 있다”
- 음수면: “다른 군집이 더 가까울 수도 있다(잘못 배정 가능성)”
K를 고를 때 평균만 보면 안 되는 이유
전체 평균이 높아도,
- 어떤 군집은 실루엣이 낮고
- 한 군집이 거의 붕괴(겹침) 상태일 수 있습니다.
그래서 좋은 기준은 다음입니다.
전체 평균이 높고, 군집별 평균 실루엣 편차가 크지 않은 K가 안정적입니다.
5) “어떤 알고리즘을 선택할까?” 실무용 체크리스트
아래 질문에 답하면 빠르게 감이 잡힙니다.
- 군집 형태가 대체로 원형인가?
→ K-Means - 군집이 타원형이거나 겹칠 수 있나?
→ GMM - 복잡한 모양(도넛/꼬리) + 이상치 분리가 중요하나?
→ DBSCAN - 군집 개수를 모르고, 밀도 봉우리를 따라 자동으로 찾고 싶나?
→ Mean Shift
(단, 데이터 크기가 크면 속도가 부담될 수 있습니다)
6) 마무리 결론: 비지도학습은 “정답 찾기”가 아니라 “기준 세우기”입니다
군집화에서 가장 중요한 것은 알고리즘 이름이 아니라, 아래 3가지입니다.
- 유사성 정의(거리? 확률? 밀도?)
- 하이퍼파라미터 튜닝(K, eps/min_samples, bandwidth)
- 평가(실루엣) + 시각화 + 도메인 해석
군집화는 “자동 정답기”가 아니라,
데이터를 이해하기 위한 구조화 도구입니다.
| 알고리즘 | 군집 개수 | 데이터 형태 | 이상치 |
| K-Means | 지정 필요 | 원형 | 취약 |
| GMM | 지정 필요 | 타원형 | 제한적 |
| DBSCAN | 자동 | 자유형 | 매우 강함 |
| Mean Shift | 자동 | 자유형 | 보통 |
'Programming' 카테고리의 다른 글
| NLP(Natural Language Processing)와 텍스트 전처리 핵심 정리― 개념부터 NLTK 실습까지 한 번에 이해하기 (0) | 2026.02.14 |
|---|---|
| 텍스트 분석 & NLP 핵심 요약 (완전 통합 정리) (0) | 2026.02.14 |
| 고객 세그먼테이션 구현 실습RFM 기법 + K-Means 군집화 (0) | 2026.01.12 |
| DBSCANDensity-Based Spatial Clustering of Applications with Noise (0) | 2026.01.12 |
| Gaussian Mixture Model(GMM) 군집화– K-Means의 한계를 극복하는 확률 기반 군집 알고리즘 (0) | 2026.01.12 |