Segmentation RFM : récence, fréquence, valeur monétaire

Segmentation de la clientèle en Python

Karolis Urbonas

Head of Data Science, Amazon

Qu'est-ce que la segmentation RFM ?

Segmentation comportementale fondée sur trois mesures :

  • Récence (R)
  • Fréquence (F)
  • Valeur monétaire (M)
Segmentation de la clientèle en Python

Regrouper les valeurs RFM

Les valeurs RFM peuvent être groupées de plusieurs façons :

  • Percentiles, p. ex. quantiles
  • Coupe de Pareto 80/20
  • Personnalisé : selon les connaissances d'affaires

Nous allons appliquer un regroupement par percentiles.

Segmentation de la clientèle en Python

Bref rappel sur les percentiles

Calcul des percentiles :

  1. Trier les clients selon cette mesure
  2. Les diviser en un nombre prédéfini de groupes de taille égale
  3. Attribuer une étiquette à chaque groupe
Segmentation de la clientèle en Python

Calculer des percentiles avec Python

Données avec huit CustomerID et des valeurs Spend calculées aléatoirement.

dummy_percentile_data

Segmentation de la clientèle en Python

Calculer des percentiles avec Python

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

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

Segmentation de la clientèle en Python

Attribuer des étiquettes

  • Attribuer la meilleure note à la meilleure mesure ; « meilleure » n'est pas toujours la plus élevée (p. ex. la récence)
  • Ici, l'étiquette est inversée : plus le client est récent, mieux c'est

Segmentation de la clientèle en Python

Attribuer des étiquettes

# Create numbered labels
r_labels = list(range(4, 0, -1))

# Divide into groups based on quartiles recency_quartiles = pd.qcut(data['Recency_Days'], q=4, labels=r_labels)
# Create new column data['Recency_Quartile'] = recency_quartiles
# Sort recency values from lowest to highest data.sort_values('Recency_Days')
Segmentation de la clientèle en Python

Attribuer des étiquettes

Comme vous le voyez, les étiquettes de quartiles sont inversées, car les clients plus récents ont plus de valeur.

recency_quartiles

Segmentation de la clientèle en Python

Étiquettes personnalisées

On peut définir une liste d'étiquettes en texte ou autres valeurs, selon le cas d'usage.

# Create string labels
r_labels = ['Active', 'Lapsed', 'Inactive', 'Churned']

# Divide into groups based on quartiles recency_quartiles = pd.qcut(data['Recency_Days'], q=4, labels=r_labels) # Create new column data['Recency_Quartile'] = recency_quartiles # Sort values from lowest to highest data.sort_values('Recency_Days')
Segmentation de la clientèle en Python

Étiquettes personnalisées

Étiquettes personnalisées attribuées à chaque quartile

Recency_quartiles

Segmentation de la clientèle en Python

Passons à la pratique avec les percentiles !

Segmentation de la clientèle en Python

Preparing Video For Download...