• 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 02/08/2023

Réduisez l’amplitude des poids affectés à vos variables

Dans le chapitre précédent, nous avons vu que la régularisation permet d'éviter le sur-apprentissage d'une régression linéaire en rajoutant à la fonction objective (la somme des carrés des erreurs) un terme de régularisation qui mesure la complexité du modèle.

Régularisation de Tykhonov

 La régularisation de Tykhonov est un cas particulier de régularisation, dans lequel on utilise pour régulariser la régression linéaire le carré de la norme du vecteur de poids β .

Plus précisément, il s'agit de la norme 2, ou norme euclidienne, c'est-à-dire

||β||22=pj=0β2j.

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

argminβRp+1(yXβ)(yXβ)+λ||β||22,

 que l'on peut aussi écrire

argminβRp+1||yXβ||22+λ||β||22

 

Le modèle linéaire que l'on apprend en résolvant cette équation est appelé régression ridge, ou ridge regression en anglais.

Solution de la régression ridge

 La fonction à minimiser est encore une fois une forme quadratique. Comme dans le cas de la méthode des moindres carrés (régression linéaire non régularisée), nous pouvons résoudre ce problème d'optimisation en annulant le gradient en β de la fonction objective : 

β(||yXβ||22+λ||β||22)=0

Encore une fois, il s'agit du gradient d'une forme quadratique, qui se calcule de manière analogue à la dérivée d'un polynôme de degré 2 :

2X(yXβ)+2λβ=0

 Ce qui nous donne

(λI+XX)β=Xy.

 Or si λ>0 , la matrice (λI+XX) est toujours inversible !

La régression ridge admet donc toujours une unique solution explicite :

β=(λI+XX)1Xy.

 

Importance de la standardisation des variables

Que se passe-t-il si l'on multiplie la variable x1 par une constante α ? Regardons tout d'abord le cas de la régression linéaire sans régularisation. La solution de la régression linéaire vérifie  X(yXβ)=0.

Maintenant, si j'appelle  ˜X la matrice obtenue en remplaçant  x1 par  αx1 dans  X , la solution ˜β de la régression linéaire qui explique y comme une fonction linéaire de αx1,x2,,xp vérifie ˜X(y˜X˜β)=0 . On a donc ni=1αXi1(˜β1j1XijβjαXi1˜β1)=0, ce dont on peut conclure que ˜β1=1αβ1. Ainsi, multiplier une variable par une constante équivaut à diviser le poids correspondant par la même constante.

Dans le cas de la régression ridge, cependant, l'effet de la multiplication de  x1 par une constante dépend aussi du terme de régularisation λβ21 , et est bien moins clair.

Pour cette raison, l'échelle de la plage des valeurs prises par les différentes variables a un impact sur le résultat de la régression ridge (mais pas sur celui de la régression non régularisée). Pour cette raison, je vous recommande fortement de standardiser les variables avant d'apprendre une régression ridge. Il s'agit de faire en sorte que chaque variable ait un écart-type de 1, en leur appliquant la transformation suivante :

XijXij1nni=1(Xij1nni=1Xij)2.

 Cette transformation est implémentée dans sklearn.preprocessing.StandardScaler.

Chemin de régularisation

Comment la solution de la régression ridge évolue-t-elle en fonction du coefficient de régularisation  λ ? Si  λ est très grand, alors la régularisation prend le dessus, le terme d'erreur n'importe plus et la solution est β=0 . À l'inverse, si λ est très faible, le terme de régularisation n'est plus utilisé, et on retrouve la solution de la régression linéaire non régularisée.

On peut visualiser l'effet que la valeur du coefficient de régularisation a sur chaque variable en affichant la valeur des différents coefficients βj en fonction de  λ quand λ décroît. Le résultat s'appelle le chemin de régularisation.

En pratique, on choisira la valeur optimale du coefficient de régularisation entre ces deux extrêmes (solution nulle et solution de la régression non régularisée) par validation croisée.

Exemple de chemin de régularisation pour 4 variables.
Exemple de chemin de régularisation pour 4 variables.

Un des effets de la régression ridge, que l'on peut observer sur le schéma entre les variables j=2 et j=4, est de grouper les variables corrélées, en leur affectant des coefficients similaires. Là où la régression non régularisée peut « répartir » le poids affecté à un groupe de variable corrélées de plusieurs façons, la régression régularisée les répartit de manière homogène.

 

 Conclusion

  • La norme ℓ2 du vecteur de poids peut être utilisée comme terme de régularisation de la régression linéaire.

  • Cela s'appelle la régularisation de Tykhonov, ou régression ridge.

  • La régression ridge admet toujours une solution analytique unique.

  • La régression ridge permet d'éviter le surapprentissage en restraignant l'amplitude des poids.

  • La régression ridge a un effet de sélection groupée : les variables corrélées ont le même coefficient.

 La régression ridge est implémentée dans scikit-learn : linear_model.Ridge.

linear_model.RidgeCVpermet de déterminer la valeur optimale du coefficient de régularisation par validation croisée.

Et si vous obteniez un diplôme OpenClassrooms ?
  • Formations jusqu’à 100 % financées
  • Date de début flexible
  • Projets professionnalisants
  • Mentorat individuel
Trouvez la formation et le financement faits pour vous
Exemple de certificat de réussite
Exemple de certificat de réussite