DATA MARKETING

도전기!_!

그로스 마케팅

GM6. 고객 세분화 (K-means, RFM, 계층적 군집 분석 등)

dltmfdltmf 2025. 2. 27. 18:27

고객 세분화(segmentation)를 위한 통계 분석

 

  • 고객의 특성과 행동 패턴을 분석하여=> 비슷한 그룹으로 나누는 과정
  • 이를 통해 맞춤형 마케팅 전략을 수립하고, 고객 만족도를 높이며, 기억의 수익을 극대화할 수 있음
  • 대표적인 통계 분석 기법
    1. 기술 통계 분석
    2. K-means 군집 분석
    3. RFM 분석
    4. 계층적 군집 분석

 

1. 기술 통계 분석

  • 데이터 분포와 기본적인 특징을 파악하는 데 사용
  • 고객 데이터를 분석할 때 자주 사용되는 통계 지표
    • 평균 (Mean): 고객 1인당 평균 구매 금액, 평균 방문 횟수 등을 분석하는 데 사용된다.
    • 중앙값 (Median): 데이터의 중앙값을 계산하여 이상치의 영향을 최소화할 수 있다.
    • 표준편차 (Standard Deviation): 고객 간 소비 패턴의 차이를 파악하는 데 도움을 준다.

예제 코드

import pandas as pd

data = {
    "고객ID": range(1, 11),
    "총구매금액": [50000, 150000, 30000, 400000, 120000, 80000, 60000, 200000, 90000, 250000],
    "방문횟수": [5, 20, 3, 40, 12, 8, 6, 25, 10, 35]
}

#여러 딕셔너리로 이루어진 데이터를 데이터프레임으로 변환
df = pd.DataFrame(data) 

# 기술 통계 분석 수행
summary_stats = df.describe() #기술통계(총계, 평균, 표준편차, 최대/최소값, 사분위수) 확인
display(summary_stats) #츌력

 

2. K-means 군집 분석

  • 고객을 여러 개의 그룹으로 나누는 방법
  • 유사한 특성을 가진 고객끼리 묶어 그룹을 생성하며, 그룹의 개수(K)는 사전에 지정해야 함
  • 이 방법을 사용하면 고객을 고가 제품 선호 그룹, 할인 제품 선호 그룹 등으로 구분 가능
    • 즉 고객을 명확한 그룹으로 나누어 맞춤형 마케팅을 진행할 수 있음
  • e.g. 마트 위치 선정할 때 활용
    • 4개 데이터(주택밀집, 거주 인구, 유동인구, 4인가족)들을 고려하여, 이를 기준으로 분석⇒ 평균으로 찍히는 지점으로 위치 선정

참고) 지도 중 해당 데이터들을 기반으로 평균 계산

예제 코드

import matplotlib.pyplot as plt
from sklearn.cluster import KMeans

data = {
    "고객ID": range(1, 11),
    "총구매금액": [50000, 150000, 30000, 400000, 120000, 80000, 60000, 200000, 90000, 250000],
    "방문횟수": [5, 20, 3, 40, 12, 8, 6, 25, 10, 35]
}

df = pd.DataFrame(data)
X = df[["총구매금액", "방문횟수"]]  # 군집 분석에 사용할 특성

# K-Means 클러스터링 수행
kmeans = KMeans(n_clusters=3, random_state=42) # 3개의 평균을 기준으로 클러스터링 수행
df["군집"] = kmeans.fit_predict(X) # 군집 분석에 사용할 특성으로 K-means 알고리즘 학습=> 이를 군집col으로 df에 저장

# 시각화
plt.scatter(X["총구매금액"], X["방문횟수"], c=df["군집"], cmap="viridis", alpha=0.7)
plt.xlabel("총 구매 금액")
plt.ylabel("방문 횟수")
plt.title("K-Means 군집 분석 결과")
plt.colorbar()
plt.show()

 

 

3. RFM 분석

  • RFM 분석(Recency, Frequency, Monetary Analysis)은 고객을 최근성(Recency), 빈도(Frequency), 금액(Monetary) 기준으로 평가하여 고객의 가치를 측정하는 방법
    • 최근성 (Recency): 고객이 마지막으로 구매한 날짜를 기준으로 측정된다.
    • 빈도 (Frequency): 일정 기간 동안 고객이 구매한 횟수를 측정한다.
    • 금액 (Monetary): 고객이 사용한 총 금액을 기준으로 평가한다.
  • 이 분석을 통해 VIP 고객, 일반 고객, 이탈 가능 고객을 구분할 수 있음!

예제 코드

import numpy as np

data = {
    "고객ID": range(1, 11),
    "구매일": pd.date_range(start="2024-01-01", periods=10, freq="30D"),
    "총구매금액": [50000, 150000, 30000, 400000, 120000, 80000, 60000, 200000, 90000, 250000]
}

df = pd.DataFrame(data)

# 현재 날짜 기준 최근성 계산
df["Recency"] = (pd.to_datetime("today") - df["구매일"]).dt.days

# 빈도와 금액 계산
df["Frequency"] = np.random.randint(1, 20, len(df))
df["Monetary"] = df["총구매금액"]

# RFM 점수 부여
df["R_Score"] = pd.qcut(df["Recency"], 5, labels=[5, 4, 3, 2, 1])
df["F_Score"] = pd.qcut(df["Frequency"], 5, labels=[1, 2, 3, 4, 5])
df["M_Score"] = pd.qcut(df["Monetary"], 5, labels=[1, 2, 3, 4, 5])

df["RFM_Score"] = df["R_Score"].astype(int) + df["F_Score"].astype(int) + df["M_Score"].astype(int)

display(df[["고객ID", "Recency", "Frequency", "Monetary", "RFM_Score"]])

 

4. 계층적 군집 분석

  • 계층적 군집 분석(Hierarchical Clustering)은 고객을 계층 구조로 그룹화하여 유사도에 따라 점진적으로 병합하는 방법
  • 이 분석을 통해 고객을 세부적인 등급으로 나눌 수 있음

예제 코드

from scipy.cluster.hierarchy import linkage, dendrogram

data = {
    "고객ID": range(1, 11),
    "총구매금액": [50000, 150000, 30000, 400000, 120000, 80000, 60000, 200000, 90000, 250000],
    "방문횟수": [5, 20, 3, 40, 12, 8, 6, 25, 10, 35]
}

df = pd.DataFrame(data)
X = df[["총구매금액", "방문횟수"]]

# 계층적 군집 분석 수행
linkage_matrix = linkage(X, method="ward")

# 덴드로그램 시각화
plt.figure(figsize=(10, 5))
dendrogram(linkage_matrix)
plt.title("계층적 군집 분석 (Dendrogram)")
plt.xlabel("고객 인덱스")
plt.ylabel("거리")
plt.show()

 


 

분석 결과 활용 방안

 

 

💡 고객 유형을 나누는 주요 기준은?

  • 구매 행동 (구매 빈도, 객단가, 브랜드 충성도)
  • 상호작용 방식 (SNS 활동, 브랜드 참여도)
  • 가격 민감도 (할인 의존 여부)
  • 고객 생애 가치(LTV, Life Time Value)
  • 이탈 가능성 (반복 구매 고객 vs. 이탈 위험 고객)

 

1. 주요 고객 유형별 특성 비교

 

고객 유형 구매 특징 방문 빈도 브랜드
상호직용
충성도 가격
민감도
대표 사례
방문형 고객 가끔 방문,
구매율 낮음
낮음 거의 없음 낮음 높음 할인 이벤트 시 방문하는 고객
할인형 고객 할인 시에만 구매 중간 SNS 쿠폰 공유 낮음 매우 높음 쿠폰/세일 정보에 민감한 고객
충성 고객 브랜드 제품
지속 구매
높음 SNS 참여 활발 높음 낮음 특정 브랜드만 구매하는 고객
이탈 위험 고객 한동안 구매 없음 낮음 거의 없음 낮음 중간 최근 6개월 동안 구매 없는 고객
신규 고객 첫 구매 이후 추가
구매 유도 필요
낮음 관심 O 불확실 중간 첫 방문 후 이탈할 가능성 높은 고객
VIP 고객 고가 제품 주기적
구매
높음 적극적 소통 매우 높음 낮음 명품 브랜드, 프리미엄 서비스 이용 고객
구독 고객 정기 구독 서비스
이용
중간~높음 브랜드 컨텐츠 소비 중간~높음 낮음 정기배송 서비스, 멤버십 고객
장바구니
이탈 고객
장바구니 담지만
구매 안 함
중간 이메일 광고 클릭 낮음 중간 쇼핑몰에서 상품만 보고 떠나는 고객

 


 

2. 패션 & 이커머스 고객 유형별 마케팅 사례

(필자가 관심있는 산업군을 세부 조사함!)