[고객 세그먼테이션] RFM과 K-Means 클러스터링 비교 분석

jul ee·2025년 4월 10일

데이터 성장기

목록 보기
37/139

🖇  RFM 기반 고객 세그먼테이션
🖇  K-Means 클러스터링 기반 고객 세그먼테이션
🖇  무엇이 더 나은 고객 세분화를 제공하는가?


지금까지 이커머스 데이터를 기반으로 고객의 구매 행동을 다각도로 분석해 보았다.

✓  SQL을 활용한 RFM 분석을 통해 고객의 최근 구매일, 구매 빈도, 구매 금액을 정량적으로 계산하고 점수를 부여해 등급화했다.

✓  이어서 Python 기반의 추가적인 feature engineering을 통해 고객별 평균 구매 간격, 제품 다양성, 취소율 등의 지표를 도출했다.

✓  이후에는 이상치 제거, 피처 스케일링, 차원 축소(PCA) 등을 거쳐 데이터를 정제하고,

✓  마지막으로 K-Means 클러스터링 알고리즘을 활용해 고객을 비지도 학습 방식으로 자동 분류해 보았다.


이처럼 한 프로젝트 내에서 전통적인 규칙 기반 접근 방식(RFM)과 머신러닝 기반의 클러스터링 방식(K-Means)을 모두 적용한 이유는

단일 분석 방법만으로는 고객의 행동을 충분히 설명하기 어렵기 때문이다.



왜 두 가지 방식을 비교해야 할까?

  • RFM 분석은 간단하고 직관적이며 널리 쓰이는 방법이지만, 한정된 피처만 사용하므로 고객 행동의 전체를 반영하기 어렵다.

  • 반면 K-Means 클러스터링은 다양한 피처를 포함해 숨어 있는 패턴을 발견할 수 있지만, 해석이 복잡하고 명확한 기준이 부족하다는 단점이 존재한다.

따라서 두 분석 기법을 비교함으로써 각 방식이 가진 강점과 한계를 명확히 이해하고, 어떤 분석 전략이 어떤 비즈니스 상황에서 더 효과적인지에 대한 인사이트를 정리해 보려고 한다.




🖇  RFM 기반 고객 세그먼테이션

RFM 분석은 고객의 행동 데이터를 기반으로 고객을 세 가지 지표로 평가한다.

구성 요소설명
Recency (R)마지막 구매 이후 경과일
Frequency (F)총 구매 횟수
Monetary (M)총 구매 금액

각 지표에 점수를 매기고, 이를 합산하거나 조합하여 고객 등급을 분류할 수 있다.

RFM 점수 조합 기반 고객 해석

RFM 점수(1~5점)를 합산한 총점을 기준으로 고객 등급을 다음과 같이 분류할 수 있다.

총점등급
15점VVIP
12~14점VIP
9~11점골드
5~8점실버
2~4점브론즈
1점패밀리

이 방식은 간단하고 직관적이며, 실제로 자주 활용되는 분석 기법이다.

RFM 점수를 기준으로 마케팅 전략(할인, 리텐션 유도, 리마케팅 등)을 달리하는 것도 가능하다.

단순 총점만 보는 것이 아니라, 아래처럼 각 요소별 조합으로 고객 행동 특성에 기반한 전략을 수립할 수도 있다.

RFM분석 예시
155잠재 구매력이 매우 높지만 최근 구매 없음 → 리마인드 프로모션 필요
555최고의 충성 고객 → 우선 보상 대상
221저관여 고객 → 이탈 방지 캠페인 대상



🖇  K-Means 클러스터링 기반 고객 세그먼테이션

이번 프로젝트에서는 RFM 기반 분류 외에도, 다양한 피처를 바탕으로 K-Means 클러스터링을 수행했다.

recency, frequency, monetary 외에도 다음과 같은 feature들이 활용되다.

  • purchase_cnt          총 구매 거래 횟수
  • item_cnt                  구매한 총 제품 수량
  • user_total              총 지출 금액
  • user_average          고객 1회 거래당 평균 지출 금액
  • unique_products    고객이 구매한 고유 제품 개수
  • average_interval  평균 구매 간격 (일 단위)
  • cancel_rate            전체 거래 중 취소된 거래 비율

RFM 분석이 간단하고 실무 적용에 용이한 반면, K-Means 클러스터링은 다음과 같은 강점들을 통해 보다 깊이 있는 고객 이해와 전략 수립을 가능하게 한다.

1)  풍부한 데이터의 사용

RFM 분석은 Recency, Frequency, Monetary라는 3가지 지표만 활용하지만,
K-Means는 고객의 구매 빈도, 평균 구매액, 제품 다양성, 취소율 등 다양한 피처를 동시에 활용할 수 있어 현실적인 고객 행동 분석에 더 유연하다.

💡 특히 실제 기업에서는 고객 행동이 단순히 R, F, M 지표로 환원되지 않는 경우가 많기 때문에, K-Means와 같은 방법이 훨씬 유용하게 작동할 수 있다.


2)  확장성과 유연성

새로운 지표를 추가하거나 기존 피처를 제거하는 것이 유연하고 간단하다. 모델 구조를 유지한 채로 데이터만 변경하여 다른 기간 혹은 다른 지역의 고객 분석에도 재사용할 수 있다.


3)  더 세밀한 고객 세분화

RFM 분석은 보통 4~6개의 등급으로 고객을 분류하지만, K-Means는 특정 특성에 따라 자연스럽게 형성된 그룹을 찾을 수 있어 보다 정밀한 세그먼트 분석이 가능하다.


4)  숨겨진 행동 패턴 탐지

머신러닝 기반 클러스터링은 사람이 사전에 정의하지 못한 패턴을 자동으로 추출해낼 수 있다. 예를 들어, “평균 구매액은 낮지만 특정 상품군만 반복 구매하는 고객”처럼 일반적인 RFM 기준으로는 놓치기 쉬운 집단을 발견할 수 있습니다.



클러스터별 고객 특성 비교 및 전략 도출

K-Means 클러스터링을 통하여 고객을 총 3개의 그룹(cluster)으로 나눌 수 있었다.

사전에 가정하지 않았던 고객 유형이나 행동 패턴을 데이터가 스스로 제안해준다는 점에서 매우 유용하다. 특히 복잡한 구매 행동이 섞인 이커머스 데이터에서는 "어떤 고객이 실제로 어떻게 다르게 행동하고 있는가?"에 대한 힌트를 얻을 수 있다.

그래서 실제로 클러스터링된 결과를 바탕으로

각 그룹별로 어떤 특성 차이가 존재하는지를 요약 통계를 통해 살펴보고 그로부터 유의미한 해석을 시도해 보았다.

group1 = user_data[user_data['cluster'] == 0]
group2 = user_data[user_data['cluster'] == 1]
group3 = user_data[user_data['cluster'] == 2]

describe() 함수를 사용해 각 피쳐 별 데이터 포인트 수와 평균, 분산 등의 정보들을 확인할 수 있다.

# 요약 통계 확인
group1.describe()

group2.describe()

group3.describe()

이 과정을 통해 도출된 숫자 하나하나보다 더 중요한 건,

예를 들어 “평균 구매액은 높지만 구매 빈도는 낮은 고객”이라는 군집이 존재한다면 이 고객층은 가격 민감도가 낮은 대신, 상품 선택이 매우 신중한 고객일 가능성이 있다는 점을 생각해 볼 수 있고,

또, “구매 취소율이 높은 군집”이 존재한다면 단순히 이탈 고객으로 분류하기보다, 제품군의 만족도 문제, 배송 경험, 또는 결제 방식에 대한 불편이 있었을 가능성을 떠올려볼 수 있다.

클러스터별 수치를 단순 나열하는 것이 아니라, 해당 수치를 어떤 맥락에서 해석할 수 있을지를 고민하는 과정이 실제 비즈니스 전략으로 이어지는 중요한 분석 단계라는 점을 실감할 수 있었다.




🖇  무엇이 더 나은 고객 세분화를 제공하는가?

그래서 결론은 무엇일까?

RFM 분석은 단순하고 빠르게 고객 가치를 평가할 수 있다는 점에서 기초 세그먼트 전략 수립에 적합하다.

K-Means 클러스터링은 다차원적 데이터를 활용하여 더 풍부하고 유의미한 인사이트를 도출할 수 있어 고도화된 마케팅 전략 설계에 유리하다.

중요한 것은 클러스터링 자체가 아니라, 도출된 그룹을 실제 마케팅이나 CRM 전략으로 연결하는 해석력이라는 것을 알게 되었다.



RFM 분석과 K-Means 클러스터링은 서로 보완적인 관계이다.

정량적 기준을 기준으로 빠르게 고객 가치를 파악할 수 있는 RFM 분석과, 데이터 기반의 숨겨진 군집 구조를 발견하는 K-Means는 함께 사용할 때 가장 강력한 고객 분석 도구가 될 수 있겠다는 인사이트를 얻었다.

해당 프로젝트에서는 단순히 알고리즘을 적용한 데서 그치지 않고,
결과를 실제 마케팅 전략에 연결하는 사고의 흐름까지 확장한 것에도 의미가 있었다.

profile
AI에 관심을 가지고, 데이터로 가치를 만들어 나가는 과정을 기록합니다.

0개의 댓글