การแบ่งกลุ่มลูกค้าด้วย Python
Karolis Urbonas
Head of Data Science, Amazon
online เดิมจากบทเรียนก่อนหน้าTotalSum = Quantity x UnitPrice
เริ่มต้นด้วย DataFrame online ที่ผ่านการประมวลผลแล้ว โดยมีเฉพาะข้อมูล 12 เดือนล่าสุด:
print('Min:{}; Max:{}'.format(min(online.InvoiceDate),
max(online.InvoiceDate)))
Min:2010-12-10; Max:2011-12-09
สร้างวันที่สมมติ snapshot_day เสมือนว่ากำลังวิเคราะห์ในปัจจุบัน
snapshot_date = max(online.InvoiceDate) + datetime.timedelta(days=1)
# Aggregate data on a customer level datamart = online.groupby(['CustomerID']).agg({ 'InvoiceDate': lambda x: (snapshot_date - x.max()).days, 'InvoiceNo': 'count', 'TotalSum': 'sum'})# Rename columns for easier interpretation datamart.rename(columns = {'InvoiceDate': 'Recency', 'InvoiceNo': 'Frequency', 'TotalSum': 'MonetaryValue'}, inplace=True)# Check the first rows datamart.head()
ตารางสำหรับการแบ่งกลุ่ม RFM เสร็จสมบูรณ์แล้ว!

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