Calculando métricas RFM

Segmentação de Clientes em Python

Karolis Urbonas

Head of Data Science, Amazon

Definições

  • Recência – dias desde a última compra
  • Frequência – número de compras nos últimos 12 meses
  • Valor Monetário – gasto total nos últimos 12 meses
Segmentação de Clientes em Python

Dataset e preparações

  • Mesmo dataset online das aulas anteriores
  • Precisamos preparar os dados
  • Nova coluna TotalSum = Quantity x UnitPrice.

top_5_rows

Segmentação de Clientes em Python

Etapas de preparação

Vamos começar com um DataFrame online pré-processado, apenas com os últimos 12 meses:

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

Vamos criar um snapshot_day hipotético, como se a análise fosse recente.

snapshot_date = max(online.InvoiceDate) + datetime.timedelta(days=1)
Segmentação de Clientes em Python

Calcular métricas 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()
Segmentação de Clientes em Python

Valores RFM finais

Nossa tabela para segmentação RFM está pronta!

rfm_top_5

Segmentação de Clientes em Python

Vamos praticar calcular valores RFM!

Segmentação de Clientes em Python

Preparing Video For Download...