Python ile Müşteri Segmentasyonu
Karolis Urbonas
Head of Data Science, Amazon
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)
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')
plt.title('Standartlaştırılmış değişkenlerin yılan grafiği')
sns.lineplot(x="Attribute", y="Value", hue='Cluster', data=datamart_melt)
cluster_avg = datamart_rfm_k3.groupby(['Cluster']).mean()population_avg = datamart_rfm.mean()relative_imp = cluster_avg / population_avg - 1
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()
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