k-평균 군집화의 실무 구현

Python을 활용한 고객 세분화

Karolis Urbonas

Head of Data Science, Amazon

핵심 단계

  • 데이터 전처리
  • 군집 수 선택
  • 전처리 데이터에 k-평균 실행
  • 군집별 평균 RFM 값 분석
Python을 활용한 고객 세분화

데이터 전처리

전처리를 마치고 다음 두 객체가 있습니다:

  • datamart_rfm
  • datamart_normalized
import numpy as np
datamart_log = np.log(datamart_rfm)

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(datamart_log)

datamart_normalized = scaler.transform(datamart_log)
Python을 활용한 고객 세분화

군집 수를 정하는 방법

  • 시각적 방법: 엘보 기준
  • 수리적 방법: 실루엣 계수
  • 실험과 해석
Python을 활용한 고객 세분화

k-평균 실행

# Import package
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=2, random_state=1)
# Compute k-means clustering on pre-processed data
kmeans.fit(datamart_normalized)
# Extract cluster labels from labels_ attribute
cluster_labels = kmeans.labels_
Python을 활용한 고객 세분화

군집별 평균 RFM 값 분석

# Create a cluster label column in the original DataFrame
datamart_rfm_k2 = datamart_rfm.assign(Cluster = cluster_labels)
# Calculate average RFM values and size for each cluster
datamart_rfm_k2.groupby(['Cluster']).agg({
    'Recency': 'mean',
    'Frequency': 'mean',
    'MonetaryValue': ['mean', 'count'],
}).round(0)
Python을 활용한 고객 세분화

군집별 평균 RFM 값 분석

간단한 2개 군집 해의 결과:

Python을 활용한 고객 세분화

k-평균 군집화를 실행해 봅시다!

Python을 활용한 고객 세분화

Preparing Video For Download...