การนำ k-means clustering ไปใช้จริง

การแบ่งกลุ่มลูกค้าด้วย Python

Karolis Urbonas

Head of Data Science, Amazon

ขั้นตอนสำคัญ

  • การเตรียมข้อมูล
  • การเลือกจำนวน cluster
  • การรัน k-means clustering กับข้อมูลที่เตรียมแล้ว
  • การวิเคราะห์ค่าเฉลี่ย RFM ของแต่ละ cluster
การแบ่งกลุ่มลูกค้าด้วย Python

การเตรียมข้อมูล

เตรียมข้อมูลเสร็จแล้วและมี object สองตัวนี้:

  • 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

วิธีกำหนดจำนวน cluster

  • วิธีเชิงภาพ - elbow criterion
  • วิธีเชิงคณิตศาสตร์ - silhouette coefficient
  • การทดลองและตีความผล
การแบ่งกลุ่มลูกค้าด้วย Python

การรัน k-means

# 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 ของแต่ละ cluster

# 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 ของแต่ละ cluster

ผลลัพธ์จากการแบ่งเป็น 2 cluster:

การแบ่งกลุ่มลูกค้าด้วย Python

มาฝึกกันเถอะ!

การแบ่งกลุ่มลูกค้าด้วย Python

Preparing Video For Download...