본문 바로가기
Python_Wiki/머신러닝

클러스터링 방법은 각각 언제 쓸까?_K-means vs. DBSCAN vs. 계층적 클러스터링 (feat. id 컬럼 포함 컬럼이 총 2개인데 클러스터링 쓰기)

by yj-data 2026. 2. 9.

공부하게 된 이유

때는 바야흐로 포트폴리오 내용을 속속들히 공부하고자, 포트폴리오의 부분들을 익혀가고 있던 때였다. 이 때, 고객id와, 재구매 주기만을 가지고 클러스터링을 했던 부분에 맞닥뜨렸는데... (팀원이 진행했던 부분)

 

여기서 생성된 질문은

1. 고객 id랑 재구매주기만 있는데 이걸 클러스터링까지 했네? 이유가 뭐였을까?

2. K-means 사용했네, 다른 것도 사용할 수 있을까?

 

이렇게 시작된 클러스터링 방법 찾기 대모험✨


데이터셋(가정, 가볍게)

고객 id 재구매주기
1 52일
2 205일
... ...

 

이 데이터를 K-means를 돌려서 재구매주기별로 고객을 세 군으로 나누고, 각 군 별로 마케팅 계획을 세운 상황.


질문

1. 데이터가 매우 가벼운데 이걸 머신러닝까지 해야할까?

2. K-means vs. DBSCAN vs. 계층적 - 어떤걸 선택해야할까?


1. 데이터가 매우 가벼운데 이걸 머신러닝까지 해야할까?

정답: 필요하다면 진행한다. 필요한 경우 = 고객군을 정확히 어디서 나눠야할지 모르겠을 때.

 

먼저 데이터를 EDA 한다.

분포 예시, y축이 재구매주기 (편의상 라인그래프로 표기, 의도는 막대그래프)

 

위 그림들 처럼 분포가 굉장히 다양할 수 있다. 근데 왼쪽 그림도, 정확히 어디서 잘라야, 고객들을 분류할 수 있을지 모르겠다는 생각이 들 수 있다. 오른쪽 그림도 상황에 따라 분류가 굉장히 곤란할 수 있다.

 

분포를 확인하고 군을 나누려고 했는데 기준 세우기가 어렵다. 나름 내부 지표를 참고해봐도 영 기준이 잘 안세워지는 경우가 있다. 따라서 고객의 군을 꼭 나눠야한다면, 데이터가 단순하더라도 클러스터링을 진행해 '고객군을 나누는 기준을 세울 때 참고하는 보조 지표'로서 클러스터링 결과를 사용할 수 있다.


2. K-means vs. DBSCAN vs. 계층적 - 어떤걸 선택해야할까?

정답: 세그먼트를 나누기 위해서는 K-means, 이상치 확인을 위해서는 DBSCAN, 계층 확인을 위해서는 계층적 클러스터링.

 

먼저 계층적 클러스터링은 K-means와 DBSCAN과는 다른 특징이 있다. 바로 계층을 나타낼때 쓴다는 것.

결과물은 덴드로그램으로 이해하면 된다.

ChatGPT로 만든 덴드로그램 예시 이미지

계층적 클러스터링은

  • 개별 데이터를 군집이라 생각하고, 가까이 있는 군집부터 모아모아 차근차근 합치는 방식이다. 따라서 일반적으로 상향식이며, 하향식은 보통 절반씩 쪼개면서 세분화하면서 진행한다.
  • 군집개수를 미리 정할 필요가 없으며, 결과를 바탕으로 몇개의 군집으로 최종 정할것인지 정리할 수 있다(cutting).

 

그렇다면 K-means vs. DBSCAN 둘 중에는 어떻게 택하면 될까?

일단 K-means는 거리 기반, DBSCAN은 밀도기반이라는 점에서 차이가 있는데, 이 점은 뭘 사용할 지 정할 때 도움이 별로 되지 않는다. 예시로 알아보자.

편의상 라인그래프로 표기

데이터가 이런 그래프를 보인다고 하고, 빨간 사각형 안에 있는 값 처럼, 일부 특이값이 있다고하자. 

 

이런 경우, 

  • 이 값을 여전히 어딘가의 클러스터에 넣을거라면 => K-means
  • 이 값은 제외하고 나머지를 클러스터링 해볼거라면 => DBSCAN

왜 이러냐고? DBSCAN은 결과가 클러스터1, 클러스터2, 노이즈 이렇게 결과가 나올 수 있기 때문이다. 노이즈는 클러스터에 속하지 않는 값이기 때문에, DBSCAN은 이상치 탐지용으로 사용되는 것이다. 

 


결론

거리 기반 + 모든 데이터를 클러스터에 넣어서 군집화할 것 = K-means

밀도 기반 + 모든 데이터를 클러스터에 넣지 않아도 된다(OR 이상치 확인이 필요하다) = DBSCAN

계층 구조가 있는 듯 하다 + 세그먼트를 어떻게/몇개로 나눠야하는지 모르겠다 = 계층적 클러스터링

 

+) 추가적으로 GMM(가우시안 믹스쳐 모델) 은 클러스터 경계가 흐릿한 데이터인 경우, 대상 A가 클러스터1에 속할 확률이 70%, 2에 속할 확률이 30%와 같이 결론 내는 것이 필요할때(=soft clustering) 진행한다.