Menghitung metrik RFM

Segmentasi Pelanggan dengan Python

Karolis Urbonas

Head of Data Science, Amazon

Definisi

  • Recency - hari sejak transaksi terakhir pelanggan
  • Frequency - jumlah transaksi dalam 12 bulan terakhir
  • Monetary Value - total belanja dalam 12 bulan terakhir
Segmentasi Pelanggan dengan Python

Dataset dan persiapan

  • Dataset online yang sama seperti pelajaran sebelumnya
  • Perlu sedikit persiapan data
  • Kolom baru TotalSum = Quantity x UnitPrice.

top_5_rows

Segmentasi Pelanggan dengan Python

Langkah persiapan data

Kita mulai dengan DataFrame online yang sudah diproses, hanya 12 bulan terakhir:

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

Mari buat data snapshot_day hipotetis seolah analisis dilakukan baru-baru ini.

snapshot_date = max(online.InvoiceDate) + datetime.timedelta(days=1)
Segmentasi Pelanggan dengan Python

Hitung metrik 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()
Segmentasi Pelanggan dengan Python

Nilai RFM akhir

Tabel untuk segmentasi RFM sudah selesai!

rfm_top_5

Segmentasi Pelanggan dengan Python

Ayo berlatih menghitung nilai RFM!

Segmentasi Pelanggan dengan Python

Preparing Video For Download...