Praktische implementatie van k-means-clustering

Klantsegmentatie in Python

Karolis Urbonas

Head of Data Science, Amazon

Belangrijke stappen

  • Data preppen
  • Aantal clusters kiezen
  • K-means draaien op geprepte data
  • Gemiddelde RFM-waarden per cluster analyseren
Klantsegmentatie in Python

Data preprocessing

We hebben de preprocessing afgerond en deze twee objecten:

  • datamart_rfm
  • datamart_normalized
import numpy as np
datamart_log = np.log(datamart_rfm)

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(datamart_log)

datamart_normalized = scaler.transform(datamart_log)
Klantsegmentatie in Python

Methoden om het aantal clusters te bepalen

  • Visueel: elbow-criterium
  • Wiskundig: silhouette-coëfficiënt
  • Experimenteren en interpreteren
Klantsegmentatie in Python

K-means uitvoeren

# Import package
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=2, random_state=1)
# K-means op geprepte data uitvoeren
kmeans.fit(datamart_normalized)
# Clusterlabels ophalen uit het attribuut labels_
cluster_labels = kmeans.labels_
Klantsegmentatie in Python

Gemiddelde RFM-waarden per cluster analyseren

# Maak een clusterlabelkolom in de originele DataFrame
datamart_rfm_k2 = datamart_rfm.assign(Cluster = cluster_labels)
# Bereken gemiddelde RFM-waarden en grootte per cluster
datamart_rfm_k2.groupby(['Cluster']).agg({
    'Recency': 'mean',
    'Frequency': 'mean',
    'MonetaryValue': ['mean', 'count'],
}).round(0)
Klantsegmentatie in Python

Gemiddelde RFM-waarden per cluster analyseren

Het resultaat van een simpele 2-clusteroplossing:

Klantsegmentatie in Python

Laten we oefenen!

Klantsegmentatie in Python

Preparing Video For Download...