Régression Lasso (régularisation L1)

Temps de lecture : 2 minutes

Ce billet court fait suite à celui sur la régression Ridge. Je te recommande donc de commencer par celui-là si ce n’est pas fait. Les deux régressions ont en effet beaucoup en commun.

Rappel sur la régression linéaire classique et la régression de Ridge

Si on reste en salle de sport et qu’on reprend notre exemple du nombre de pompes en fonction de la taille des biceps dont l’évolution était linéaire, nous avons vu qu’à la différence de la régression linéaire où il faut trouver a et b en minimisant \sum{\delta_i^2}, la régression ridge minimise plutôt \sum{\delta_i^2} + \lambda a^2 , \lambda étant le facteur de pénalité.

Nombre de pompes en fonction de la taille de biceps (Régression linéaire)
Régression Lasso

Je disais qu’il y avait beaucoup de similitudes dans les principes avec la régression Ridge parce que dans la régression Lasso, il faut plutôt minimiser \sum{\delta_i^2} + \lambda |a|, |a| étant la valeur absolue de la pente. Et avant que tu ne me dises que c’est une arnaque, laisse-moi t’expliquer comment l’un ou l’autre peut être utile.

Intérêt de la régression Lasso

Prenons un problème multivariables : exemple, on veut désormais trouver le nombre de pompes réalisables Y par un participant en fonction de la taille de ses biceps X_1, de son tour de taille X_2, de la quantité de glucides qu’il a consommée X_3, du nombre de pompes qu’il a effectuées la veille X_4… soit qu’on veut écrire Y sous la forme Y = a_1X_1 + a_2X_2 + a_3X_3 + a_4X_4.

Dans les deux cas (Ridge ou Lasso), le principe reste d’élever le biais pour diminuer la variance c’est-à-dire qu’on diminue l’amplitude des coefficients a_1…a_4 pour permettre une meilleure généralisation de notre modèle. La différence entre les deux approches est la suivante.

Dans le cas de la régression Ridge, on peut diminuer l’amplitude des coefficients mais on n’ira pas jusqu’à en annuler : cette approche est donc intéressante lorsqu’on est certain que toutes nos variables en entrée sont nécessaires. A l’opposé, la régression Lasso peut annuler certains coefficients. Dans notre exemple, on pourrait ainsi se retrouver avec a_4 = 0, signification ? la variable X_4 (nombre de pompes effectuées la veille) n’a aucune influence sur Y (nombre de pompes que peut faire la personne aujourd’hui). Par conséquent, la régression Lasso peut s’avérer intéressante si on a plusieurs variables en entrée et qu’on pense que pas toutes sont utiles car elle permet d’en éliminer certaines : ça s’appelle du feature-selection (sélection de variables) . C’est un processus en traitement de données qui mérite un article à lui seul.

Implémentation sur Python

Sklearn est encore très clément pour la régression lasso, une seule ligne et c’est plié !

from sklearn.linear_model import Lasso
modele = Lasso(alpha = 1)
# Entrainement du modèle
modele.fit(X,Y)
# On peut après l'utiliser pour prédire des sorties sur de nouvelles données Xnew
modele.predict(Xnew)

Voilà, tu sais désormais la différence entre la régression Ridge et la régression Lasso. A toi de choisir en fonction de la problématique que tu as à résoudre 😉.  

Partager

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *