Accueil / Factory / Algos ML / Ridge — factory / algos ML / apprentissage supervisé · régularisation

RÉGRESSION RIDGE.

Une régression linéaire qui pénalise les coefficients trop grands. Quand les variables sont nombreuses et se ressemblent, la régression classique s'emballe et donne des poids instables. Ridge les freine tous un peu, sans en supprimer aucun, et prévoit mieux sur des données nouvelles.

RégressionRégularisationVariables corréléesPrévisionNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceSouvent meilleure que la régression classique hors échantillon
InterprétabilitéCoefficients lisibles, mais rétrécis et partagés entre variables
VitesseCalcul quasi instantané, même avec des centaines de variables
Facilité de réglageUn seul paramètre, choisi par validation croisée
Tolérance aux données brutesVariables à mettre à l'échelle, manquants à traiter
EN 30 SECONDES

Un budget de poids à répartir. Quand deux variables racontent la même histoire, la régression classique donne +100 à l'une et -95 à l'autre. Ridge leur donne +3 chacune.

1. On met les variables à la même échelle

La pénalité porte sur la taille des coefficients. Sans mise à l'échelle, une variable en euros et une variable en milliers d'euros ne seraient pas traitées à égalité.

2. On ajoute une pénalité à l'erreur

Le modèle minimise l'erreur au carré plus alpha fois la somme des coefficients au carré. Plus alpha est grand, plus les coefficients sont ramenés vers zéro.

3. On choisit alpha par validation croisée

On teste une grille de valeurs et on garde celle qui prévoit le mieux sur les blocs de données mis de côté.

LE CAS MÉTIER

prévision · retail / industrie / distribution
EN ENTRÉE

Les 36 derniers mois comme variables

Pour prévoir les ventes du mois prochain, on donne au modèle les ventes de chacun des 36 mois précédents. Ces variables sont très corrélées entre elles, et il ne reste que 48 mois pour apprendre.

EN SORTIE

Une prévision à un mois plus stable

Sur le jeu d'exemple, la régression classique donne des poids qui changent de signe d'un mois à l'autre, dont un poids négatif au mois précédent. Ridge les lisse : le même mois des années précédentes (12, 24 et 36 mois avant) pèse le plus.

CE QU'ON MESURE

L'erreur sur les 24 derniers mois

On teste sur les deux dernières années, jamais vues à l'apprentissage. Ici, l'erreur moyenne passe de 56,6 unités avec la régression classique à 42,7 avec Ridge, pour des ventes d'environ 1 600 unités par mois.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Beaucoup de variables corrélées : historiques décalés, indicateurs qui se recoupent, mesures voisines
  • Presque autant de variables que de lignes
  • Toutes les variables ont un peu d'effet et on veut les garder
  • Régression classique aux coefficients absurdes ou de signe inattendu

NON

  • Besoin de désigner les variables utiles : Ridge n'en met aucune à zéro, préférer le Lasso
  • Relations non linéaires ou seuils : un modèle à base d'arbres les capte mieux
  • Rapport devant expliquer un coefficient en unités métier exactes : ils sont volontairement biaisés
  • Série temporelle avec saisonnalité à modéliser proprement : comparer avec ARIMA ou Holt-Winters
LES 3 RÉGLAGES QUI COMPTENT

Noms donnés pour R (glmnet) et Python (scikit-learn). Attention : alpha n'a pas le même sens dans les deux.

lambda / alpha

La force du frein. En R, c'est lambda ; en Python, alpha. Toujours choisi par validation croisée (cv.glmnet, RidgeCV), jamais au jugé.

alpha = 0 dans glmnet

Dans glmnet, alpha désigne le mélange : 0 donne Ridge, 1 donne Lasso. Oublier alpha = 0 donne un Lasso par défaut.

standardize / StandardScaler

glmnet met les variables à l'échelle tout seul. En Python, il faut un StandardScaler dans un Pipeline, sinon la pénalité frappe inégalement les variables.

LE CODE MINIMAL

jeu d'exemple : ventes_mensuelles.csv ↓
# Prévision des ventes mensuelles : Ridge en R
library(glmnet)

ventes <- read.csv("ventes_mensuelles.csv")
y <- ventes$ventes
# 36 variables : les ventes des 36 mois précédents, très corrélées entre elles
X <- sapply(1:36, function(k) c(rep(NA, k), head(y, -k)))
colnames(X) <- paste0("mois_moins_", 1:36)
garder <- complete.cases(X)
X <- X[garder, ]
y <- y[garder]
test <- (nrow(X) - 23):nrow(X)   # les 24 derniers mois en test

mco <- lm.fit(cbind(1, X[-test, ]), y[-test])
pred_mco <- cbind(1, X[test, ]) %*% mco$coefficients

set.seed(42)
cv <- cv.glmnet(X[-test, ], y[-test], alpha = 0, nfolds = 5)   # alpha = 0 : Ridge
pred_ridge <- predict(cv, newx = X[test, ], s = "lambda.min")

cat("Lignes d'apprentissage :", nrow(X) - 24, "pour", ncol(X), "variables\n")
cat("Erreur moyenne MCO   :", round(mean(abs(y[test] - pred_mco)), 1), "\n")
cat("Erreur moyenne Ridge :", round(mean(abs(y[test] - pred_ridge)), 1), "\n")

QUESTIONS FRÉQUENTES

Quelle différence entre Ridge et Lasso ?

Les deux freinent les coefficients. Ridge les rétrécit tous sans jamais les annuler ; le Lasso en met certains exactement à zéro, et sélectionne donc des variables. Ridge est souvent meilleur quand toutes les variables comptent un peu, le Lasso quand quelques-unes seulement comptent.

Faut-il normaliser les variables avant une régression Ridge ?

Oui. La pénalité dépend de la taille des coefficients, donc de l'unité des variables. glmnet le fait par défaut ; avec scikit-learn, placez un StandardScaler avant le modèle dans un Pipeline.

Pourquoi Ridge prévoit-il mieux si ses coefficients sont biaisés ?

Ridge accepte un petit biais en échange d'une forte baisse de la variance : ses coefficients bougent beaucoup moins d'un échantillon à l'autre. Sur des données nouvelles, ce compromis donne souvent une erreur plus faible.

LES ALGOS VOISINS

à comparer avant de choisir
quand il faut trier

Lasso

L'autre pénalité : elle met à zéro les variables inutiles et fait la sélection.

Voir la fiche →
le mélange des deux

Elastic Net

Combine Ridge et Lasso : sélectionne, tout en gardant ensemble les variables corrélées.

Voir la fiche →
l'autre réponse aux corrélations

Régression PLS

Résume d'abord les variables en quelques composantes, puis régresse sur elles.

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 →