การเลือกจำนวนคลัสเตอร์

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

Karolis Urbonas

Head of Data Science, Amazon

วิธีการ

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

วิธีเกณฑ์ข้อศอก

  • พล็อตจำนวนคลัสเตอร์เทียบกับผลรวมของความคลาดเคลื่อนกำลังสองภายในคลัสเตอร์ (SSE) - ผลรวมของระยะทางกำลังสองจากทุกจุดข้อมูลไปยังศูนย์กลางคลัสเตอร์
  • ระบุ "ข้อศอก" ในกราฟ
  • ข้อศอก - จุดที่แทนจำนวนคลัสเตอร์ที่ "เหมาะสมที่สุด"
การแบ่งกลุ่มลูกค้าด้วย Python

วิธีเกณฑ์ข้อศอก

# Import key libraries
from sklearn.cluster import KMeans
import seaborn as sns
from matplotlib import pyplot as plt

# Fit KMeans and calculate SSE for each *k* sse = {} for k in range(1, 11): kmeans = KMeans(n_clusters=k, random_state=1) kmeans.fit(data_normalized) sse[k] = kmeans.inertia_ # sum of squared distances to closest cluster center
# Plot SSE for each *k* plt.title('The Elbow Method') plt.xlabel('k'); plt.ylabel('SSE') sns.pointplot(x=list(sse.keys()), y=list(sse.values())) plt.show()
การแบ่งกลุ่มลูกค้าด้วย Python

วิธีเกณฑ์ข้อศอก

กราฟเกณฑ์ข้อศอก:

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

วิธีเกณฑ์ข้อศอก

กราฟเกณฑ์ข้อศอก:

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

การใช้วิธีเกณฑ์ข้อศอก

  • ควรเลือกจุดที่ข้อศอกหรือจุดถัดไป
  • ใช้เป็นแนวทางแต่ทดสอบหลายคำตอบ
  • กราฟข้อศอกสร้างจาก datamart_rfm

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

แนวทางการทดลอง - วิเคราะห์กลุ่มลูกค้า

  • สร้างคลัสเตอร์ที่จุดข้อศอกและบริเวณใกล้เคียง
  • วิเคราะห์คุณสมบัติ - ค่าเฉลี่ย RFM
  • เปรียบเทียบกันและเลือกแบบที่สมเหตุสมผลทางธุรกิจที่สุด
การแบ่งกลุ่มลูกค้าด้วย Python

แนวทางการทดลอง - วิเคราะห์กลุ่มลูกค้า

  • คำตอบ 2 คลัสเตอร์แบบเดิม
  • คำตอบ 3 คลัสเตอร์บนชุดข้อมูล RFM ที่ทำ normalization แล้วชุดเดิม
การแบ่งกลุ่มลูกค้าด้วย Python

มาฝึกหาจำนวนคลัสเตอร์ที่เหมาะสมกันเถอะ!

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

Preparing Video For Download...