Yenilik, sıklık, parasal değer (RFM) segmentasyonu

Python ile Müşteri Segmentasyonu

Karolis Urbonas

Head of Data Science, Amazon

RFM segmentasyonu nedir?

Üç metrikle davranışsal müşteri segmentasyonu:

  • Yenilik (R)
  • Sıklık (F)
  • Parasal Değer (M)
Python ile Müşteri Segmentasyonu

RFM değerlerini gruplama

RFM değerleri birkaç şekilde gruplanabilir:

  • Yüzdelikler, ör. kantiller
  • Pareto 80/20 kesimi
  • Özel: iş bilgisine dayalı

Yüzdelik tabanlı gruplamayı uygulayacağız.

Python ile Müşteri Segmentasyonu

Yüzdeliklere kısa bakış

Yüzdelik hesaplama süreci:

  1. Müşterileri ilgili metriğe göre sıralayın
  2. Müşterileri eşit boyutlu ön tanımlı gruplara ayırın
  3. Her gruba bir etiket atayın
Python ile Müşteri Segmentasyonu

Python ile yüzdelik hesaplama

Sekiz CustomerID ve rastgele hesaplanmış Spend değerlerinden oluşan veri.

dummy_percentile_data

Python ile Müşteri Segmentasyonu

Python ile yüzdelik hesaplama

spend_quartiles = pd.qcut(data['Spend'], q=4, labels=range(1,5))

data['Spend_Quartile'] = spend_quartiles
data.sort_values('Spend')

Python ile Müşteri Segmentasyonu

Etiket atama

  • En iyi metrik en yüksek puan; ancak “en iyi” her zaman en yüksek değildir (ör. yenilik)
  • Bu durumda etiket ters: Müşteri ne kadar yeni ise o kadar iyi

Python ile Müşteri Segmentasyonu

Etiket atama

# Numaralı etiketler oluşturun
r_labels = list(range(4, 0, -1))

# Çeyreklere göre gruplara ayırın recency_quartiles = pd.qcut(data['Recency_Days'], q=4, labels=r_labels)
# Yeni sütun oluşturun data['Recency_Quartile'] = recency_quartiles
# Yenilik değerlerini küçükten büyüğe sıralayın data.sort_values('Recency_Days')
Python ile Müşteri Segmentasyonu

Etiket atama

Görüldüğü gibi, çeyrek etiketleri terstir; çünkü daha yeni müşteriler daha değerlidir.

recency_quartiles

Python ile Müşteri Segmentasyonu

Özel etiketler

Kullanıma göre, dize veya diğer değerlerden oluşan bir liste tanımlayabiliriz.

# Metin etiketleri oluşturun
r_labels = ['Active', 'Lapsed', 'Inactive', 'Churned']

# Çeyreklere göre gruplara ayırın recency_quartiles = pd.qcut(data['Recency_Days'], q=4, labels=r_labels) # Yeni sütun oluşturun data['Recency_Quartile'] = recency_quartiles # Değerleri küçükten büyüğe sıralayın data.sort_values('Recency_Days')
Python ile Müşteri Segmentasyonu

Özel etiketler

Her çeyreğe atanmış özel etiketler

Recency_quartiles

Python ile Müşteri Segmentasyonu

Yüzdeliklerle pratik yapalım!

Python ile Müşteri Segmentasyonu

Preparing Video For Download...