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

RÉGRESSION LASSO.

Une régression linéaire qui pénalise la somme des valeurs absolues des coefficients. Effet pratique : les variables inutiles reçoivent un coefficient exactement nul et sortent du modèle. On obtient une équation courte, qui ne garde que les leviers qui comptent vraiment.

RégressionRégularisationSélection de variablesModèle interprétableNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceProche de la régression classique, meilleure s'il y a du bruit
InterprétabilitéModèle court : seules les variables utiles restent
VitesseChemin de régularisation calculé en quelques secondes
Facilité de réglageUn paramètre par validation croisée, deux règles possibles
Tolérance aux données brutesMise à l'échelle obligatoire, manquants à traiter
EN 30 SECONDES

Un budget de poids limité. Pour garder une variable, il faut qu'elle rapporte plus qu'elle ne coûte. Les variables qui n'apportent presque rien se retrouvent à zéro.

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

La pénalité compare les coefficients entre eux. Il faut donc que les variables soient exprimées dans des unités comparables.

2. On pénalise la valeur absolue des coefficients

Le modèle minimise l'erreur au carré plus lambda fois la somme des |coefficients|. Cette forme de pénalité pousse les petits coefficients exactement à zéro.

3. On choisit lambda par validation croisée

Au minimum de l'erreur, le modèle garde souvent quelques variables parasites. La règle « 1 écart-type » choisit un modèle plus court, presque aussi précis.

LE CAS MÉTIER

retail · réseau de magasins / franchise
EN ENTRÉE

Vingt indicateurs candidats par magasin

Surface, budget pub local, concurrents, type de zone, et 15 autres indicateurs remontés par les régions. Pour la démonstration, ces 15 indicateurs sont du pur hasard : le Lasso doit les écarter.

EN SORTIE

Une équation courte des vrais leviers

Avec la règle 1 écart-type, le modèle garde les 5 vrais leviers (surface, pub, concurrents, deux zones) et un seul indicateur parasite, à coefficient quasi nul. Au minimum de l'erreur, il en gardait 16 sur 20.

CE QU'ON MESURE

Les variables retenues, puis l'erreur

On vérifie d'abord que la sélection a un sens métier et reste stable d'un échantillon à l'autre. L'erreur absolue moyenne en k€ sur des magasins jamais vus confirme ensuite que le modèle court prévoit presque aussi bien : environ 56 k€ ici, contre 55 k€ au minimum de l'erreur.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Beaucoup de variables candidates dont peu comptent vraiment
  • Besoin d'un modèle court, à présenter en comité ou à recoder
  • Premier tri avant de construire un modèle plus riche
  • Plus de variables que de lignes, avec l'hypothèse que peu sont utiles

NON

  • Variables très corrélées entre elles : le Lasso en garde une au hasard, préférer Elastic Net
  • Toutes les variables ont un peu d'effet : Ridge prévoit mieux
  • Chiffrer précisément l'effet d'un levier : les coefficients sont rétrécis, refaire une régression classique sur les variables retenues
  • Relations non linéaires : un modèle à base d'arbres est plus adapté
LES 4 RÉGLAGES QUI COMPTENT

Noms donnés pour R (glmnet) et Python (scikit-learn).

lambda / alpha

La force de la pénalité. Plus elle est forte, moins il reste de variables. Toujours choisie par validation croisée : cv.glmnet en R, LassoCV en Python.

lambda.min ou lambda.1se

lambda.min minimise l'erreur de validation croisée mais garde souvent du bruit. lambda.1se prend le modèle le plus court dont l'erreur reste à moins d'un écart-type du minimum. glmnet la fournit ; en Python, il faut la calculer.

alpha = 1 dans glmnet

Dans glmnet, alpha règle le mélange Ridge / Lasso. La valeur par défaut, 1, donne le Lasso.

standardize / StandardScaler

glmnet met les variables à l'échelle tout seul et rend les coefficients dans les unités d'origine. En Python, on standardise soi-même puis on divise les coefficients par l'écart-type pour les relire.

LE CODE MINIMAL

jeu d'exemple : magasins.csv ↓
# Leviers du CA magasin : Lasso en R
library(glmnet)

magasins <- read.csv("magasins.csv")
X <- model.matrix(ca_k ~ surface_m2 + budget_pub_k + nb_concurrents + zone, data = magasins)[, -1]
# Démonstration : 15 indicateurs candidats sans aucun lien avec le CA
set.seed(42)
bruit <- matrix(rnorm(nrow(X) * 15), ncol = 15)
colnames(bruit) <- sprintf("indicateur_%02d", 1:15)
X <- cbind(X, bruit)
idx <- sample(nrow(X), round(0.7 * nrow(X)))

cv <- cv.glmnet(X[idx, ], magasins$ca_k[idx], alpha = 1, nfolds = 10)   # alpha = 1 : Lasso
min_err <- as.matrix(coef(cv, s = "lambda.min"))[-1, 1]
un_se <- as.matrix(coef(cv, s = "lambda.1se"))[-1, 1]

cat("Variables gardées au minimum de l'erreur :", sum(min_err != 0), "sur", ncol(X), "\n")
cat("Variables gardées avec la règle 1 écart-type :\n")
print(round(un_se[un_se != 0], 2))
pred <- predict(cv, newx = X[-idx, ], s = "lambda.1se")
cat("Erreur absolue moyenne sur les magasins test :", round(mean(abs(magasins$ca_k[-idx] - pred)), 1), "k€\n")

QUESTIONS FRÉQUENTES

Pourquoi le Lasso met-il des coefficients exactement à zéro ?

La pénalité sur la valeur absolue a un « coin » en zéro. Tant que l'apport d'une variable à l'ajustement reste inférieur au coût de la pénalité, la meilleure solution est de laisser son coefficient à zéro. La pénalité au carré de Ridge n'a pas ce coin et rétrécit sans annuler.

Le Lasso choisit-il toujours les bonnes variables ?

Non. Avec des variables corrélées, il peut garder l'une et écarter l'autre presque au hasard, et le choix change d'un échantillon à l'autre. Il faut vérifier la stabilité de la sélection et le sens métier avant de conclure.

Quelle différence entre lambda.min et lambda.1se ?

lambda.min donne l'erreur de validation croisée la plus basse. lambda.1se donne le modèle le plus simple dont l'erreur reste à moins d'un écart-type de ce minimum. Pour sélectionner des variables, lambda.1se est en général plus fiable.

LES ALGOS VOISINS

à comparer avant de choisir
garde tout, freine tout

Ridge

La pénalité au carré : aucun coefficient à zéro, souvent meilleure quand tout compte un peu.

Voir la fiche →
pour les variables corrélées

Elastic Net

Mélange Lasso et Ridge : sélectionne, mais garde ensemble les variables qui se ressemblent.

Voir la fiche →
l'étape d'après

Régression linéaire

Une fois les variables choisies, une régression classique sur elles donne des coefficients non rétrécis.

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 →