Tính toán chỉ số RFM

Phân khúc khách hàng bằng Python

Karolis Urbonas

Head of Data Science, Amazon

Định nghĩa

  • Recency – số ngày từ lần giao dịch gần nhất
  • Frequency – số giao dịch trong 12 tháng qua
  • Monetary Value – tổng chi tiêu trong 12 tháng qua
Phân khúc khách hàng bằng Python

Dữ liệu và chuẩn bị

  • Dùng cùng bộ dữ liệu online như bài trước
  • Cần chuẩn bị dữ liệu
  • Cột mới TotalSum = Quantity x UnitPrice.

5 hàng đầu

Phân khúc khách hàng bằng Python

Các bước chuẩn bị dữ liệu

Chúng ta bắt đầu với DataFrame online đã tiền xử lý, chỉ chứa 12 tháng gần nhất:

print('Min:{}; Max:{}'.format(min(online.InvoiceDate),
                              max(online.InvoiceDate)))
Min:2010-12-10; Max:2011-12-09

Tạo giá trị snapshot_day giả định như thể phân tích được thực hiện gần đây.

snapshot_date = max(online.InvoiceDate) + datetime.timedelta(days=1)
Phân khúc khách hàng bằng Python

Tính toán chỉ số RFM

# 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()
Phân khúc khách hàng bằng Python

Giá trị RFM cuối cùng

Bảng cho phân khúc RFM đã hoàn tất!

rfm_top_5

Phân khúc khách hàng bằng Python

Hãy thực hành tính giá trị RFM!

Phân khúc khách hàng bằng Python

Preparing Video For Download...