RFM metriklerini hesaplama

Python ile Müşteri Segmentasyonu

Karolis Urbonas

Head of Data Science, Amazon

Tanımlar

  • Recency - son işlemin üzerinden geçen gün sayısı
  • Frequency - son 12 aydaki işlem sayısı
  • Monetary Value - son 12 aydaki toplam harcama
Python ile Müşteri Segmentasyonu

Veri kümesi ve hazırlıklar

  • Önceki derslerdekiyle aynı online veri kümesi
  • Biraz veri hazırlığı gerekir
  • Yeni TotalSum sütunu = Quantity x UnitPrice.

top_5_rows

Python ile Müşteri Segmentasyonu

Veri hazırlama adımları

Yalnızca son 12 ayı içeren, önceden işlenmiş online DataFrame ile başlıyoruz:

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

Yakın zamanda analiz yapıyormuşuz gibi varsayımsal bir snapshot_day oluşturalım.

snapshot_date = max(online.InvoiceDate) + datetime.timedelta(days=1)
Python ile Müşteri Segmentasyonu

RFM metriklerini hesaplayın

# Müşteri düzeyinde veriyi özetleyin
datamart = online.groupby(['CustomerID']).agg({
    'InvoiceDate': lambda x: (snapshot_date - x.max()).days,
    'InvoiceNo': 'count',
    'TotalSum': 'sum'})

# Yorumlamayı kolaylaştırmak için sütunları yeniden adlandırın datamart.rename(columns = {'InvoiceDate': 'Recency', 'InvoiceNo': 'Frequency', 'TotalSum': 'MonetaryValue'}, inplace=True)
# İlk satırları kontrol edin datamart.head()
Python ile Müşteri Segmentasyonu

Nihai RFM değerleri

RFM segmentasyonu için tablomuza hazırız!

rfm_top_5

Python ile Müşteri Segmentasyonu

RFM değerlerini hesaplayalım!

Python ile Müşteri Segmentasyonu

Preparing Video For Download...