• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 12/12/2019

Réduisez le nombre de variables utilisées par votre modèle

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Lasso

La régression ridge nous permet de réduire l'amplitude des coefficients d'une régression linéaire et d'éviter le sur-apprentissage. Cependant, on peut souhaiter pousser les choses plus loin, et annuler certains coefficients. Les variables qui auront un coefficient égal à zéro ne feront plus partie du modèle, qui en sera simplifié d'autant. Un tel modèle, avec beaucoup de coefficients nuls, est appelé un modèle parcimonieux (ou « sparse » en anglais).

Il s'agit donc d'une méthode de sélection de variables et de réduction de dimension supervisée : les variables qui ne sont pas nécessaires à la prédiction de l'étiquette sont éliminées.

Pour arriver à cela, il suffit de remplacer le terme de régularisation de la régression ridge, autrement dit la norme $\(\ell_2\)$ de $\(\beta\)$ , par la norme $\(\ell_1\)$ de ce vecteur, c'est-à-dire : $\(||\beta||_1 = \sum_{j=1}^p |\beta_j|.\)$ 

Nous avons donc maintenant le problème d'optimisation suivant :

$\[\arg \min_{\beta \in \mathbb{R}^{p+1}} ||y - X \beta||_2^2 + \lambda ||\beta||_1.\]$

C'est ce qu'on appelle le lasso, pour Least Absolute Shrinkage and Selection Operator. « Absolute » pour l'utilisation de la norme 1, « shrinkage » (réduction) parce qu'on contraint les coordonnées de $\( \beta\)$ à avoir des valeurs faibles, et « selection » parce qu'on va tellement les réduire que certaines seront nulles.

Contrairement à la régression ridge, ce problème d'optimisation n'a pas de solution explicite ! Heureusement, on peut utiliser un algorithme du gradient pour le résoudre.

Interprétation géométrique

Mais pourquoi donc l'utilisation de la norme $\(\ell_1\)$ force-t-elle certains coefficients à 0, contrairement à la norme $\(\ell_2\)$ ?

Il se trouve que, pour une valeur de $\(\lambda \in \mathbb{R}_+\)$ donnée, il existe un $\(t \in \mathbb{R}_+\)$ unique tel que le lasso est équivalent à résoudre le problème suivant :

$\[ \arg \min_{\beta \in \mathbb{R}^{p+1}} ||y - X \beta||_2^2 \mbox{ tel que } ||\beta||_1 \leq t.\]$

 Géométriquement, cela veut dire que, sauf dans le cas où la solution sans contrainte (c'est-à-dire non pénalisée, autrement dit la solution de la régression linéaire obtenue par la méthode des moindre carrés) vérifie aussi la contrainte, la solution est un point situé à l'intersection d'une ligne de niveau du terme d'erreur $\(||y - X \beta||_2^2\)$ et de la région admissible, c'est-à-dire la région de $\(\mathbb{R}^{p+1}\)$ où la contrainte est vérifiée. Comme le terme d'erreur est quadratique en $\(\beta\)$ , la ligne de niveau est une ellipsoïde. Par ailleurs, la région admissible est une boule $\(\ell_1 \)$ de rayon $\(t\)$ , autrement dit, un hypercube. Comme cette boule a des « coins », l'ellipsoïde est susceptible de la rencontrer sur un de ces coins, là où une ou plusieurs coordonnées sont nulles.

Solution du lasso.
Solution du lasso.

Comparaison avec la régression ridge

Qu'en est-il de la régression ridge ? On peut démontrer une équivalence similaire, et la régression ridge est équivalent à résoudre

$\[ \arg \min_{\beta \in \mathbb{R}^{p+1}} ||y - X \beta||_2^2 \mbox{ tel que } ||\beta||_1 \leq t.\]$

 On s'intéresse donc maintenant à l'intersection d'une courbe de niveau de l'erreur avec la boule $\(\ell_2\)$ de rayon $\(t \)$ , autrement dit la boule euclidienne « ronde » dont on a plus l'habitude. Il n'y a ici aucune raison que cette intersection se fasse à un endroit où une ou plusieurs coordonnées s’annulent...

Solution de la régression ridge.
Solution de la régression ridge.

Chemin de régularisation

Comme pour la régression ridge, on peut visualiser les poids affectés aux différentes variables selon la valeur du coefficient de régularisation $\(\lambda\)$ . Quand $\(\lambda\)$ est grand, le modèle est très parcimonieux ( $\(\beta=0\)$ si $\(\lambda\)$ est suffisamment grand). Plus il diminue, plus de variables vont avoir un coefficient non nul : on voit les variables entrer une à une (ou petit groupe par petit groupe) dans le modèle.

Exemple de chemin de régularisation du lasso.
Exemple de chemin de régularisation du lasso.

Elastic Net

Si je résume, l'utilisation de la norme  $\(\ell_2\)$ nous permet d'éviter le sur-apprentissage avec une solution unique, et l'utilisation de la norme  $\(\ell_1\)$ d'avoir un modèle parcimonieux mais instable. Ne peut-on pas avoir un peu de beurre et d'argent du beurre à la fois ?

Eh bien si ! C'est ce que permet la méthode elastic net, qui combine les deux termes de régularisation en un. On formule ainsi le problème suivant :

  

La région admissible a une forme intermédiaire entre celles des boules de norme  $\(\ell_1\)$ et de norme $\(\ell_2\)$ , et la solution est parcimonieuse mais moins que pour le lasso, car les variables corrélées entre elles qui sont pertinentes sont toutes sélectionnées (et reçoivent le même coefficient), comme avec la régression ridge.

Solution de l'elastic net.
Solution de l'elastic net.

Conclusion

  • Le lasso utilise la norme ℓ1 du vecteur β comme régularisateur pour obtenir un modèle parcimonieux.

  • Le lasso peut donc être utilisé comme un algorithme de réduction de dimension supervisée.

  • Le lasso n'a pas de solution explicite, ni nécessairement unique.

  • L'elastic net combine les normes ℓ1 et ℓ2 pour obtenir une solution moins parcimonieuse que le lasso, mais plus stable et dans laquelle toutes les variables corrélées pertinentes pour la prédiction de l'étiquette sont sélectionnées et reçoivent un poids identique.

Exemple de certificat de réussite
Exemple de certificat de réussite