Aller au contenu principal

Moindres carrés ordinaires et régularisation

Pour le modèle, les résidus et les mises à jour par gradient, commencer par la régression linéaire. Cette page explique comment résoudre directement le problème des moindres carrés, quand ses coefficients sont identifiables et quelles hypothèses supplémentaires permettent d’estimer leur incertitude.

Pour une matrice de conception XX, des cibles yy et un vecteur de coefficients ww, les moindres carrés ordinaires résolvent

w^=arg⁡min⁡w∥Xw−y∥22.\hat{w}=\arg\min_w\|Xw-y\|_2^2.

La pseudo-inverse fournit une solution aux moindres carrés, w^=X+y\hat{w}=X^{+}y. Lorsque les colonnes de XX sont presque linéairement dépendantes, de faibles variations des données peuvent entraîner de fortes variations des coefficients. Les prédictions peuvent rester acceptables alors que les coefficients individuels deviennent instables.

Du résidu à la solution​

XX comporte nn lignes (observations) et pp colonnes (coefficients), avec y∈Rny\in\mathbb{R}^n et w∈Rpw\in\mathbb{R}^p. Ajoutez une colonne de 1 pour ajuster une constante. Pour une droite y^i=b+axi\hat y_i=b+ax_i, le résidu ri=yi−y^ir_i=y_i-\hat y_i est un écart vertical dans l’unité de la cible, pas la distance minimale à la droite. Dans des coordonnées cartésiennes non redimensionnées, la distance perpendiculaire vaut ∣ri∣/1+a2|r_i|/\sqrt{1+a^2} ; la minimiser résoudrait un autre problème, autorisant aussi un déplacement en xx.

Points observés reliés verticalement à une droite de régression, avec une cible y et une prédiction ŷ.Voir l’image en grand

Choisissez un point et rejoignez la droite verticalement, à x fixé : le point donne la valeur observée y, et la droite la prédiction ŷ. Chaque segment bleu représente la valeur absolue d’un résidu, plutôt que la distance perpendiculaire à la droite. OLS cherche la droite qui minimise la somme des carrés de ces écarts verticaux. Cette illustration de D2L utilise ses propres données ; le calcul sur trois observations ci-dessous constitue un autre exemple.

L’objectif J(w)=∥Xw−y∥22/(2n)J(w)=\|Xw-y\|_2^2/(2n) conserve les mêmes minimiseurs OLS et donne

∇J(w)=1nX⊤(Xw−y),∇2J(w)=1nX⊤X.\nabla J(w)=\frac{1}{n}X^\top(Xw-y),\qquad \nabla^2J(w)=\frac{1}{n}X^\top X.

La Hessienne est semi-définie positive : un gradient nul correspond donc à un minimum global. L’annuler donne les équations normales :

X⊤Xw^=X⊤y.X^\top X\hat w=X^\top y.

Si rank⁡(X)=p\operatorname{rank}(X)=p (donc n≥pn\geq p), la solution est unique et vaut (X⊤X)−1X⊤y(X^\top X)^{-1}X^\top y. Sinon, ajouter un vecteur du noyau de XX aux coefficients ne change pas les valeurs ajustées : les coefficients ne sont pas uniques. La pseudo-inverse de Moore–Penrose choisit le vecteur de norme euclidienne minimale ; les valeurs ajustées sur l’entraînement restent uniques. Par exemple, des colonnes identiques n’identifient que la somme de leurs coefficients. Les prédictions peuvent diverger si de nouvelles entrées ne respectent plus cette relation entre colonnes.

Utilisez un solveur de moindres carrés fondé sur QR ou SVD plutôt qu’une inversion explicite ; former X⊤XX^\top X élève au carré le conditionnement spectral lorsque XX est de rang colonne plein. Le guide des modèles linéaires de scikit-learn présente OLS et sa résolution par SVD.

Trois observations à la main​

Prenons (x,y)=(0,1),(1,2),(2,2)(x,y)=(0,1),(1,2),(2,2). La colonne constante et la colonne xx sont indépendantes. Avec xˉ=1\bar x=1 et yˉ=5/3\bar y=5/3,

a=∑i(xi−xˉ)(yi−yˉ)∑i(xi−xˉ)2=12,b=yˉ−axˉ=76.a=\frac{\sum_i(x_i-\bar x)(y_i-\bar y)}{\sum_i(x_i-\bar x)^2} =\frac{1}{2},\qquad b=\bar y-a\bar x=\frac{7}{6}.

Les prédictions sont (7/6,10/6,13/6)(7/6,10/6,13/6), les résidus (−1/6,1/3,−1/6)(-1/6,1/3,-1/6) et leur somme de carrés vaut 1/61/6. Les égalités ∑iri=0\sum_i r_i=0 et ∑ixiri=0\sum_i x_i r_i=0 vérifient les équations normales. La référence constante, moyenne d’entraînement 5/35/3, obtient une somme de carrés de 2/32/3. Cette comparaison porte sur l’entraînement, pas sur la généralisation.

from math import isclose
from statistics import mean

x, y = [0, 1, 2], [1, 2, 2]
xbar, ybar = mean(x), mean(y)
sxx = sum((v - xbar) ** 2 for v in x)
if sxx == 0:
raise ValueError("A constant x cannot identify slope and intercept separately")
a = sum((u - xbar) * (v - ybar) for u, v in zip(x, y)) / sxx
b = ybar - a * xbar
r = [v - (b + a * u) for u, v in zip(x, y)]
assert isclose(a, 0.5) and isclose(b, 7 / 6)
assert isclose(sum(v * v for v in r), 1 / 6)
assert isclose(sum(r), 0, abs_tol=1e-12)
assert isclose(sum(u * v for u, v in zip(x, r)), 0, abs_tol=1e-12)

Ajustement et inférence statistique​

Calculer le minimiseur ne nécessite aucune hypothèse gaussienne. Pour l’usage statistique, la documentation de régression statsmodels explicite le modèle de covariance des erreurs ; choisir une formule d’incertitude exige ce modèle supplémentaire. Sous un modèle de moyenne conditionnelle correctement spécifié y=Xβ+εy=X\beta+\varepsilon, avec E[ε∣X]=0\mathbb{E}[\varepsilon\mid X]=0 et un rang colonne plein, OLS est conditionnellement sans biais. Si, de plus, Var⁡(ε∣X)=σ2I\operatorname{Var}(\varepsilon\mid X)=\sigma^2 I, alors

Var⁡(w^∣X)=σ2(X⊤X)−1.\operatorname{Var}(\hat w\mid X)=\sigma^2(X^\top X)^{-1}.

Pour n>pn>p, la somme des carrés résiduels divisée par n−pn-p estime σ2\sigma^2 sous ces hypothèses. Des erreurs conditionnellement gaussiennes justifient en outre l’inférence t/F exacte habituelle en échantillon fini. Des erreurs hétéroscédastiques ou corrélées nécessitent des estimateurs d’incertitude adaptés ; les erreurs-types robustes ne corrigent ni une mauvaise moyenne conditionnelle ni la confusion causale. Un intervalle pour la réponse moyenne diffère d’un intervalle de prédiction pour une nouvelle observation bruitée.

Les grands résidus peuvent dominer la perte quadratique, et les observations à fort levier (valeurs de variables inhabituelles) déplacer fortement la droite. Examinez les résidus selon les valeurs ajustées et le temps, puis comparez les erreurs sur données réservées à une référence avant d’interpréter les coefficients.

Objectifs pénalisés​

Ci-dessous, λ≥0\lambda\geq0 et 0≤ρ≤10\leq\rho\leq1. Pour ces formules pénalisées, centrez X,yX,y avec les moyennes d’entraînement et ne mettez que les pentes dans ww ; retrouvez la constante non pénalisée par yˉ−xˉ⊤w\bar y-\bar x^\top w. Mettez les variables à l’échelle dans les plis d’entraînement, car les pénalités dépendent des unités. La normalisation fait partie de la définition : Ridge dans scikit-learn utilise ∥Xw−y∥2+α∥w∥2\|Xw-y\|^2+\alpha\|w\|^2, donc la formule Ridge ici correspond à α=2nλ\alpha=2n\lambda. Les conventions Lasso et Elastic Net correspondent à α=λ\alpha=\lambda, avec l1_ratio égal à ρ\rho. À λ\lambda identique, le terme Ridge d’Elastic Net avec ρ=0\rho=0 a la moitié de l’intensité de celui de la formule Ridge ci-dessous.

Ridge​

w^ridge=arg⁡min⁡w12n∥Xw−y∥22+λ∥w∥22.\hat{w}_{\text{ridge}} = \arg\min_w \frac{1}{2n}\|Xw-y\|_2^2 + \lambda\|w\|_2^2.

Ridge réduit les coefficients corrélés ou mal identifiés et les conserve généralement tous non nuls.

Lasso​

w^lasso=arg⁡min⁡w12n∥Xw−y∥22+λ∥w∥1.\hat{w}_{\text{lasso}} = \arg\min_w \frac{1}{2n}\|Xw-y\|_2^2 + \lambda\|w\|_1.

La pénalité ℓ1\ell_1 peut amener des coefficients exactement à zéro. Cette parcimonie est une propriété de l’objectif ajusté ; elle ne prouve pas que les variables retenues sont les seules importantes ni qu’elles sont causales. Avec des variables fortement corrélées, le membre sélectionné peut être instable.

Elastic Net​

w^EN=arg⁡min⁡w12n∥Xw−y∥22+λ[ρ∥w∥1+1−ρ2∥w∥22].\hat{w}_{\text{EN}} = \arg\min_w \frac{1}{2n}\|Xw-y\|_2^2 + \lambda\left[ \rho\|w\|_1 + \frac{1-\rho}{2}\|w\|_2^2 \right].

Elastic Net associe la parcimonie à la stabilisation de Ridge et se révèle souvent utile lorsque les prédicteurs forment des groupes corrélés.

Règles pratiques​

  • Ajuster la mise à l’échelle et les transformations de base uniquement sur les données d’entraînement ; appliquer ensuite la transformation enregistrée aux données de validation et de test.
  • Ne pas pénaliser l’ordonnée à l’origine, sauf si la formulation le prévoit explicitement.
  • Choisir λ\lambda et ρ\rho au moyen de la validation ou de la validation croisée au sein du processus d’entraînement.
  • Comparer l’erreur de prédiction, la stabilité des coefficients et la simplicité opérationnelle, pas seulement la perte d’entraînement.
  • Employer des objectifs robustes ou quantiles lorsque l’erreur quadratique ne représente pas la cible ou le coût des erreurs souhaité.
  • Séparer la modélisation prédictive des affirmations inférentielles ; l’estimation de l’incertitude exige des hypothèses explicites sur le processus de génération des données.

Les variables polynomiales et les interactions peuvent rendre la relation avec les entrées non linéaire tout en conservant des coefficients ajustés linéaires. Le modèle obtenu hérite néanmoins des risques d’extrapolation et de surajustement liés à la base choisie.

Consultez le guide des modèles linéaires de scikit-learn pour les solveurs actuels et les API des estimateurs.

Explorer les liensOuvrir le réseau