Accueil / Factory / Algos ML / Uplift modeling — factory / algos ML / modélisation causale · marketing

UPLIFT MODELING.

Un score d'appétence prédit qui va acheter. L'uplift modeling prédit qui va acheter parce qu'on l'a contacté. Il estime, client par client, l'écart de probabilité d'achat avec et sans campagne, à partir d'un test avec groupe témoin. On cesse de dépenser pour ceux qui achètent de toute façon et pour ceux que la relance fait fuir.

MarketingTest A/BEffet causalCiblageNiveau : avancé

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceEffet réel mais bruité : il faut beaucoup de clients
InterprétabilitéSegments lisibles, score individuel plus fragile
VitesseDeux modèles classiques à entraîner
Facilité de réglageValidation délicate : l'effet individuel n'est jamais observé
Tolérance aux données brutesExige un test avec groupe témoin tiré au hasard
EN 30 SECONDES

Un médecin ne se demande pas qui va guérir, mais qui guérit grâce au traitement. Certains guériraient sans lui, d'autres ne guériront pas quoi qu'il arrive : les traiter n'apporte rien.

1. On part d'un test avec groupe témoin

Une partie des clients reçoit la campagne, l'autre non, par tirage au sort. C'est la seule façon de mesurer ce que la campagne change vraiment.

2. On modélise l'achat dans chaque groupe

Méthode des deux modèles : l'un prédit l'achat chez les clients contactés, l'autre chez les témoins. Ici, deux Random Forest.

3. On calcule l'écart client par client

Uplift = probabilité d'achat si contacté moins probabilité d'achat sans contact. On cible les uplifts les plus élevés et on évite les négatifs.

LE CAS MÉTIER

marketing · ciblage de campagne
EN ENTRÉE

Un test A/B sur 8 000 clients

Âge, ancienneté, panier moyen, visites des 30 derniers jours, groupe (ciblé ou témoin) et achat. Le modèle apprend sur 60 % des clients, le reste sert à vérifier.

EN SORTIE

Un score d'uplift par client

On découpe les clients de test en cinq tranches selon l'uplift prédit. Les tranches du haut sont nettement plus jeunes : la campagne agit surtout sur les moins de 35 ans.

CE QU'ON MESURE

L'effet réel par tranche

Dans chaque tranche, on compare le taux d'achat des ciblés et des témoins. Dans l'exemple Python, l'écart atteint environ 10 points dans les deux tranches du haut et ne dépasse pas 4 points dans les trois autres. On résume souvent le tout par la courbe de Qini.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Campagne coûteuse (appel, remise, cadeau) où chaque contact doit rapporter
  • Un test avec groupe témoin existe déjà, ou peut être lancé
  • Soupçon que la campagne agace une partie des clients (désabonnement, résiliation)
  • Budget limité : choisir qui contacter en priorité

NON

  • Pas de groupe témoin tiré au hasard : l'effet de la campagne se confond avec le profil des clients ciblés
  • Quelques centaines de clients seulement : l'effet est trop bruité pour être estimé client par client
  • Campagne quasi gratuite et sans risque de rejet : un score d'appétence suffit
  • Tests rapides et répétés entre plusieurs offres : un bandit comme Thompson Sampling s'adapte en continu
LES 4 CHOIX QUI COMPTENT

Pas de package unique ni de réglage magique : les choix de méthode pèsent plus que les hyperparamètres.

Méthode d'estimation

Deux modèles (T-learner) est la plus simple. Un seul modèle avec le groupe en variable (S-learner) ou des forêts spécialisées, comme les causal forests, estiment l'écart plus directement.

Taille des feuilles (nodesize / min_samples_leaf)

L'uplift est une petite différence entre deux probabilités bruitées. Des feuilles d'au moins 50 clients évitent que cet écart ne soit que du bruit.

Taille du groupe témoin

Trop petit, le modèle témoin est imprécis et l'uplift aussi. Un témoin de 20 à 50 % des clients est courant pendant la phase d'apprentissage.

Évaluation par tranche et courbe de Qini

L'effet n'est jamais observé chez un client donné. On trie les clients de test par uplift prédit et on vérifie, tranche par tranche, que l'écart réel entre ciblés et témoins décroît.

LE CODE MINIMAL

jeu d'exemple : campagne_marketing.csv ↓
# Ciblage d'une campagne : uplift modeling (deux modèles) en R
library(randomForest)

camp <- read.csv("campagne_marketing.csv")
camp$achat <- factor(camp$achat)
set.seed(42)
idx <- sample(nrow(camp), round(0.6 * nrow(camp)))
train <- camp[idx, ]
test <- camp[-idx, ]

# Un modèle d'achat pour les clients ciblés, un autre pour le groupe témoin
formule <- achat ~ age + anciennete_mois + panier_moyen + visites_30j
m_cible <- randomForest(formule, data = train[train$groupe == "cible", ], ntree = 300, nodesize = 50)
m_controle <- randomForest(formule, data = train[train$groupe == "controle", ], ntree = 300, nodesize = 50)

# Uplift = P(achat si contacté) - P(achat si non contacté)
test$uplift <- predict(m_cible, test, type = "prob")[, "1"] - predict(m_controle, test, type = "prob")[, "1"]
test$tranche <- cut(rank(test$uplift, ties.method = "first"), 5,
                    labels = c("20 % du bas", "2", "3", "4", "20 % du haut"))

# Effet réel mesuré par tranche : taux d'achat ciblés - taux d'achat témoins
taux <- tapply(test$achat == "1", list(test$tranche, test$groupe), mean)
print(round(cbind(taux, effet_reel = taux[, "cible"] - taux[, "controle"],
                  age_moyen = tapply(test$age, test$tranche, mean),
                  anciennete_moy = tapply(test$anciennete_mois, test$tranche, mean)), 3))

QUESTIONS FRÉQUENTES

Quelle différence entre uplift et score d'appétence ?

Le score d'appétence (ou de propension) estime la probabilité d'achat. L'uplift estime de combien la campagne change cette probabilité. Un client très appétent qui achète de toute façon a un uplift nul : le contacter coûte sans rien rapporter.

Quels sont les quatre profils de clients en uplift ?

Les persuadables achètent seulement si on les contacte. Les acquis achètent de toute façon, les causes perdues jamais. Les « chiens qui dorment » (sleeping dogs) achètent moins si on les sollicite. L'uplift vise les premiers et évite les derniers.

Qu'est-ce que la courbe de Qini ?

Elle montre le gain cumulé d'achats supplémentaires quand on cible les clients par uplift décroissant, comparé à un ciblage au hasard. Plus l'aire entre les deux courbes est grande, meilleur est le modèle. C'est l'équivalent de la courbe de lift pour l'uplift.

LES ALGOS VOISINS

à comparer avant de choisir
le score classique

Régression logistique

Prédit qui va acheter, pas qui achète grâce à la campagne. C'est l'approche que l'uplift vient corriger.

Voir la fiche →
la brique utilisée

Random Forest

Les deux modèles de l'exemple sont des Random Forest ; tout classifieur qui donne des probabilités peut les remplacer.

Voir la fiche →
tester en continu

Bandit manchot

Répartit le trafic entre plusieurs offres pendant le test, au lieu de modéliser l'effet après coup.

Voir la fiche →
— formation

Passer de la fiche à la pratique

Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.

Voir les formations →