Výpočet RFM metrik

Segmentace zákazníků v Pythonu

Karolis Urbonas

Head of Data Science, Amazon

Definice

  • Recency – počet dní od poslední transakce zákazníka
  • Frequency – počet transakcí za posledních 12 měsíců
  • Monetary Value – celkové výdaje za posledních 12 měsíců
Segmentace zákazníků v Pythonu

Datová sada a příprava

  • Stejná datová sada online jako v předchozích lekcích
  • Je třeba provést přípravu dat
  • Nový sloupec TotalSum = Quantity x UnitPrice.

prvních 5 řádků

Segmentace zákazníků v Pythonu

Kroky přípravy dat

Začínáme s předzpracovaným DataFramem online obsahujícím pouze data za posledních 12 měsíců:

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

Vytvoříme hypotetické datum snapshot_day, jako bychom analýzu prováděli nedávno.

snapshot_date = max(online.InvoiceDate) + datetime.timedelta(days=1)
Segmentace zákazníků v Pythonu

Výpočet RFM metrik

# 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()
Segmentace zákazníků v Pythonu

Výsledné RFM hodnoty

Tabulka pro RFM segmentaci je hotová!

rfm prvních 5 řádků

Segmentace zákazníků v Pythonu

Procvičte si výpočet RFM hodnot!

Segmentace zákazníků v Pythonu

Preparing Video For Download...