Profil dan interpretasi segmen

Segmentasi Pelanggan dengan Python

Karolis Urbonas

Head of Data Science, Amazon

Pendekatan membangun persona pelanggan

  • Statistik ringkas per klaster, mis. rata-rata nilai RFM
  • Snake plot (dari riset pasar)
  • Pentingnya relatif atribut klaster dibanding populasi
Segmentasi Pelanggan dengan Python

Statistik ringkas tiap klaster

  • Jalankan segmentasi k-means untuk beberapa nilai k di sekitar nilai yang disarankan.
  • Buat kolom label klaster di DataFrame asal:

    datamart_rfm_k2 = datamart_rfm.assign(Cluster = cluster_labels)
    

    Hitung rata-rata RFM dan ukuran tiap klaster:

    datamart_rfm_k2.groupby(['Cluster']).agg({
       'Recency': 'mean',
       'Frequency': 'mean',
       'MonetaryValue': ['mean', 'count'],
    }).round(0)
    
    • Ulangi untuk k=3
Segmentasi Pelanggan dengan Python

Statistik ringkas tiap klaster

  • Bandingkan rata-rata nilai RFM dari tiap solusi klaster
Segmentasi Pelanggan dengan Python

Snake plot untuk memahami dan membandingkan segmen

  • Teknik riset pasar untuk membandingkan segmen
  • Visualisasi atribut tiap segmen
  • Data perlu dinormalisasi (center & scale)
  • Plot rata-rata nilai ternormalisasi tiap atribut per klaster
Segmentasi Pelanggan dengan Python

Siapkan data untuk snake plot

Ubah datamart_normalized menjadi DataFrame dan tambahkan kolom Cluster

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

Ubah ke format long agar nilai RFM dan nama metrik disimpan masing-masing di 1 kolom

datamart_melt = pd.melt(datamart_normalized.reset_index(), 
                    id_vars=['CustomerID', 'Cluster'],
                    value_vars=['Recency', 'Frequency', 'MonetaryValue'], 
                    var_name='Attribute', 
                    value_name='Value')
Segmentasi Pelanggan dengan Python

Visualisasikan snake plot

plt.title('Snake plot of standardized variables')
sns.lineplot(x="Attribute", y="Value", hue='Cluster', data=datamart_melt)

Segmentasi Pelanggan dengan Python

Pentingnya relatif atribut segmen

  • Teknik untuk melihat pentingnya tiap atribut segmen
  • Hitung rata-rata tiap klaster
  • Hitung rata-rata populasi
  • Skor pentingnya = bagi keduanya lalu kurangi 1 (hasil 0 bila rata-rata klaster = populasi)
cluster_avg = datamart_rfm_k3.groupby(['Cluster']).mean()

population_avg = datamart_rfm.mean()
relative_imp = cluster_avg / population_avg - 1
Segmentasi Pelanggan dengan Python

Analisis dan plot pentingnya relatif

  • Semakin jauh rasio dari 0, semakin penting atribut untuk segmen (relatif ke populasi total).
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
# Plot heatmap
plt.figure(figsize=(8, 2))
plt.title('Relative importance of attributes')
sns.heatmap(data=relative_imp, annot=True, fmt='.2f', cmap='RdYlGn')
plt.show()
Segmentasi Pelanggan dengan Python

Heatmap pentingnya relatif

         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
Segmentasi Pelanggan dengan Python

Saatnya Anda bereksperimen dengan berbagai teknik profil pelanggan!

Segmentasi Pelanggan dengan Python

Preparing Video For Download...