Accueil / Factory / Algos ML / Régression isotonique — factory / algos ML / apprentissage supervisé · calibration

RÉGRESSION ISOTONIQUE.

Une régression qui impose une seule contrainte : la courbe ne peut que monter, sans forme imposée. On l'utilise surtout pour calibrer un score, c'est-à-dire traduire des points ou une note en vraie probabilité. Un score de 12 devient « 38 % de risque de départ », un chiffre sur lequel on peut chiffrer une campagne.

RégressionCalibrationScoringSans hypothèse de formeNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceCalibration fidèle dès quelques milliers de lignes
InterprétabilitéUn tableau score -> probabilité, lisible par tous
VitesseAlgorithme PAVA : une passe sur les données triées
Facilité de réglageAucun paramètre à régler
Tolérance aux données brutesUne seule variable, sensible aux petits effectifs
EN 30 SECONDES

Un escalier qu'on n'a pas le droit de descendre. On suit les taux observés marche par marche, et quand une marche est plus basse que la précédente, on fusionne les deux.

1. On trie par score

On range les clients du score le plus bas au plus haut et on regarde le taux de départ observé à chaque niveau.

2. On fusionne ce qui descend

Si un niveau a un taux plus bas que le précédent, on regroupe les deux et on prend leur moyenne pondérée. C'est l'algorithme PAVA (pool adjacent violators).

3. On obtient une table de conversion

Le résultat est une fonction en escalier croissante : à chaque score correspond une probabilité, directement applicable aux nouveaux clients.

LE CAS MÉTIER

fidélisation · télécom / énergie / abonnements
EN ENTRÉE

Un score maison à points

L'équipe fidélisation utilise une grille : 2 points par appel au support, 3 par incident, 4 pour un contrat mensuel, 4 pour moins de 6 mois d'ancienneté. Le score classe bien les clients, mais « 12 points » ne dit pas combien vont partir.

EN SORTIE

Une probabilité par niveau de score

Sur le jeu d'exemple : 5,5 % de départs à 0 point, 21 % à 8 points, 38 % à 12 points, 54 % à 16 points. On peut enfin chiffrer le coût d'une campagne et le nombre de départs évités attendu.

CE QU'ON MESURE

Le score de Brier

Le Brier est l'écart moyen au carré entre probabilité annoncée et réalité (0 ou 1). Sur les clients jamais vus, il passe de 0,162 en donnant à tous le taux moyen à 0,128 avec le score calibré. On vérifie aussi, par tranche, que les taux annoncés collent aux taux observés.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Convertir un score à points, une note ou une sortie de modèle en probabilité
  • Calibrer une forêt aléatoire, un boosting ou une SVM, dont les scores sont souvent mal calibrés
  • Relation dont on sait seulement qu'elle est croissante : dose / effet, prix / refus
  • Plusieurs milliers d'observations pour la calibration

NON

  • Peu de données de calibration, quelques centaines : préférer la calibration de Platt (sigmoïde)
  • Relation qui monte puis descend : une courbe lisse (GAM) ou une polynomiale
  • Plusieurs variables à combiner : la régression isotonique n'en prend qu'une
  • Besoin d'une courbe lisse : le résultat est un escalier, avec des paliers plats
LES 3 CHOIX QUI COMPTENT

Pas d'hyperparamètre à proprement parler. Noms donnés pour R (Iso) et Python (scikit-learn).

Jeu de calibration séparé

La courbe doit être apprise sur des données que le score n'a pas vues, sinon elle recopie le surapprentissage. En Python, CalibratedClassifierCV(method="isotonic") le gère par validation croisée.

increasing / decreasing

Le sens de la contrainte. Par défaut, croissante. Pour un score où une valeur haute signifie un faible risque, on inverse.

out_of_bounds / rule

Que faire d'un score hors de la plage vue à l'apprentissage. On prolonge la dernière valeur connue : out_of_bounds="clip" en Python, rule = 2 dans approxfun en R.

LE CODE MINIMAL

jeu d'exemple : clients_churn.csv ↓
# Calibrer un score de churn maison : régression isotonique en R
library(Iso)

clients <- read.csv("clients_churn.csv")
# Score à points utilisé par l'équipe fidélisation : il classe, mais n'est pas une probabilité
clients$score <- 2 * clients$appels_support + 3 * clients$incidents_3m +
  4 * (clients$contrat == "mensuel") + 4 * (clients$anciennete < 6)
set.seed(42)
idx <- sample(nrow(clients), round(0.7 * nrow(clients)))
train <- clients[idx, ]
test <- clients[-idx, ]

# Taux de départ observé par niveau de score, puis courbe croissante pondérée (PAVA)
taux <- aggregate(churn ~ score, data = train, FUN = mean)
effectif <- aggregate(churn ~ score, data = train, FUN = length)$churn
taux$proba <- pava(taux$churn, w = effectif)
calibre <- approxfun(taux$score, taux$proba, method = "constant", rule = 2)

print(data.frame(score = c(0, 4, 8, 12, 16, 20), proba_depart = round(100 * calibre(c(0, 4, 8, 12, 16, 20)), 1)))
proba <- calibre(test$score)
cat("Brier, taux moyen pour tous :", round(mean((mean(train$churn) - test$churn)^2), 3), "\n")
cat("Brier, score calibré        :", round(mean((proba - test$churn)^2), 3), "\n")

QUESTIONS FRÉQUENTES

À quoi sert la calibration d'un modèle ?

À faire correspondre les probabilités annoncées aux fréquences réelles : parmi les clients notés 30 %, environ 30 % doivent partir. Un modèle peut bien classer sans être calibré. Dès qu'on chiffre un coût, un gain ou une provision, il faut des probabilités calibrées.

Isotonique ou Platt pour calibrer un modèle ?

La calibration de Platt ajuste une courbe en S : elle suppose une forme, mais reste stable sur peu de données. La régression isotonique n'impose que la croissance : plus souple, elle demande plus de données pour ne pas surapprendre. Au-delà de quelques milliers d'exemples, l'isotonique est souvent meilleure.

Qu'est-ce que l'algorithme PAVA ?

Pool Adjacent Violators Algorithm. On parcourt les points triés ; chaque fois qu'une valeur est plus basse que la précédente, on fusionne les deux groupes et on les remplace par leur moyenne pondérée. On répète jusqu'à obtenir une suite croissante.

LES ALGOS VOISINS

à comparer avant de choisir
l'autre calibration

Régression logistique

Appliquée au score seul, c'est la calibration de Platt : une courbe en S, moins souple, plus stable sur peu de données.

Voir la fiche →
le score à points

Scorecard crédit

La grille de points classique des banques, que l'on calibre ensuite en probabilité de défaut.

Voir la fiche →
un score à calibrer

Random Forest

Ses parts de votes classent bien mais ne sont pas toujours de bonnes probabilités.

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 →