Segmentleri profilleyin ve yorumlayın

Python ile Müşteri Segmentasyonu

Karolis Urbonas

Head of Data Science, Amazon

Müşteri personası oluşturma yaklaşımları

  • Her küme için özet istatistikler; ör. ortalama RFM değerleri
  • Yılan grafikleri (pazar araştırmasından)
  • Kümeye ait özniteliklerin popülasyona göre göreli önemi
Python ile Müşteri Segmentasyonu

Her kümenin özet istatistikleri

  • Önerilen değerin etrafında birkaç k değeri için k-means segmentasyonu çalıştırın.
  • Orijinal DataFrame'e bir küme etiketi sütunu ekleyin:

    datamart_rfm_k2 = datamart_rfm.assign(Cluster = cluster_labels)
    

    Her küme için ortalama RFM değerlerini ve boyutlarını hesaplayın:

    datamart_rfm_k2.groupby(['Cluster']).agg({
       'Recency': 'mean',
       'Frequency': 'mean',
       'MonetaryValue': ['mean', 'count'],
    }).round(0)
    
    • Aynısını k=3 için tekrarlayın
Python ile Müşteri Segmentasyonu

Her kümenin özet istatistikleri

  • Her kümeleme çözümünün ortalama RFM değerlerini karşılaştırın
Python ile Müşteri Segmentasyonu

Segmentleri anlamak ve karşılaştırmak için yılan grafikleri

  • Farklı segmentleri karşılaştırmak için pazar araştırması tekniği
  • Her segmentin özniteliklerinin görsel gösterimi
  • Önce veriyi normalize etmek gerekir (merkezleme ve ölçekleme)
  • Her öznitelik için kümelerin ortalama normalize değerlerini çizin
Python ile Müşteri Segmentasyonu

Yılan grafiği için veriyi hazırlayın

datamart_normalized'ı DataFrame'e dönüştürün ve bir Cluster sütunu ekleyin

datamart_normalized = pd.DataFrame(datamart_normalized, 
                                   index=datamart_rfm.index, 
                                   columns=datamart_rfm.columns)
datamart_normalized['Cluster'] = datamart_rfm_k3['Cluster']

Veriyi uzun formata dönüştürün; böylece RFM değerleri ve metrik adları ayrı sütunlarda olur

datamart_melt = pd.melt(datamart_normalized.reset_index(), 
                    id_vars=['CustomerID', 'Cluster'],
                    value_vars=['Recency', 'Frequency', 'MonetaryValue'], 
                    var_name='Attribute', 
                    value_name='Value')
Python ile Müşteri Segmentasyonu

Yılan grafiğini görselleştirin

plt.title('Standartlaştırılmış değişkenlerin yılan grafiği')
sns.lineplot(x="Attribute", y="Value", hue='Cluster', data=datamart_melt)

Python ile Müşteri Segmentasyonu

Segment özniteliklerinin göreli önemi

  • Her segmentin özniteliklerinin göreli önemini görmek için yararlı
  • Her kümenin ortalama değerlerini hesaplayın
  • Toplam popülasyonun ortalama değerlerini hesaplayın
  • Bunları bölüp 1 çıkararak önem puanı hesaplayın (kümeyle popülasyon ortalaması eşitse 0 verir)
cluster_avg = datamart_rfm_k3.groupby(['Cluster']).mean()

population_avg = datamart_rfm.mean()
relative_imp = cluster_avg / population_avg - 1
Python ile Müşteri Segmentasyonu

Göreli önemi analiz edin ve görselleştirin

  • Oran 0'dan uzaklaştıkça, bir segment için öznitelik önemi (toplam popülasyona göre) artar.
relative_imp.round(2)
         Recency  Frequency  MonetaryValue
Cluster                                   
0          -0.82       1.68           1.83
1           0.84      -0.84          -0.86
2          -0.15      -0.34          -0.42
# Isı haritasını çiz
plt.figure(figsize=(8, 2))
plt.title('Özniteliklerin göreli önemi')
sns.heatmap(data=relative_imp, annot=True, fmt='.2f', cmap='RdYlGn')
plt.show()
Python ile Müşteri Segmentasyonu

Göreli önem ısı haritası

         Recency  Frequency  MonetaryValue
Cluster                                   
0          -0.82       1.68           1.83
1           0.84      -0.84          -0.86
2          -0.15      -0.34          -0.42
Python ile Müşteri Segmentasyonu

Farklı müşteri profilleme tekniklerini deneme zamanı!

Python ile Müşteri Segmentasyonu

Preparing Video For Download...