Retour à l'accueil

Régression linéaire : Méthode OLS et Descente de gradient

L'article décompose la régression linéaire de l'équation de base aux techniques avancées : OLS, descente de gradient, régularisation, gestion des valeurs aberrantes. Du code Python et des métriques de qualité sont fournis pour une implémentation pratique.

Construire la Régression linéaire de Zéro : Code et Métriques
Advertisement 728x90

Régression Linéaire : Des Données au Modèle Optimisé

La régression linéaire modélise les relations linéaires entre des prédicteurs et une variable cible. Pour la régression linéaire simple, l'équation est y = b₀ + b₁ × x, où x est le prédicteur, y est la réponse, b₀ est l'ordonnée à l'origine, et b₁ est la pente. Les coefficients déterminent la position de la droite dans le plan.

Les données sous forme tabulaire, avec des caractéristiques et une réponse, servent de fondement. Exemple : la relation entre le prix d'un appartement et le nombre de pièces. La qualité du modèle dépend de la représentativité de l'échantillon — le principe « des données erronées en entrée donnent des résultats erronés » dicte le résultat.

Les modèles sont utiles pour les prédictions et l'identification de tendances. Transformer des données tabulaires en une expression analytique permet l'extrapolation à de nouvelles observations.

Google AdInline article slot

Méthode des Moindres Carrés Ordinaires

La MCO (Méthode des Moindres Carrés Ordinaires) minimise la somme des résidus au carré : ∑(y_i - ŷ_i)². Solution analytique : b₁ = Cov(x, y) / Var(x), b₀ = ȳ - b₁ × x̄.

# Exemple de calcul des coefficients
import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 5, 4, 5])
b1 = np.cov(x, y)[0,1] / np.var(x)
b0 = np.mean(y) - b1 * np.mean(x)
print(f'b0: {b0:.2f}, b1: {b1:.2f}')

Cette approche fonctionne pour des données non dégénérées mais nécessite l'inversion de matrice (XᵀX)⁻¹ dans le cas multivarié.

Évaluation de la Qualité du Modèle

Visuellement : nuage de points des prédictions vs valeurs réelles, graphiques des résidus. Métriques :

Google AdInline article slot
  • (coefficient de détermination) : proportion de variance expliquée, 0–1.
  • RMSE : √(MSE), dans les unités de la réponse.
  • MAE : erreur absolue moyenne.
  • MAPE/SMAPE : erreurs en pourcentage.

Les graphiques de résidus révèlent l'hétéroscédasticité ou la non-linéarité.

Division des Données et Validation

La division apprentissage/test (80/20) évite le surapprentissage. La validation croisée (k-fold) moyenne les métriques sur les plis.

def train_test_split(X, y, test_size=0.2):
    indices = np.arange(len(X))
    np.random.shuffle(indices)
    split = int(len(X) * (1 - test_size))
    return X[indices[:split]], X[indices[split:]], y[indices[:split]], y[indices[split:]]

Régression Multivariée

Extension à y = b₀ + b₁x₁ + ... + bₙxₙ. Forme matricielle : ŷ = Xβ, solution β = (XᵀX)⁻¹Xᵀy. Prétraitement :

Google AdInline article slot
  • Normalisation : (x - min)/(max - min).
  • Standardisation : (x - μ)/σ.
  • Encodage one-hot des caractéristiques catégorielles.

Interprétation Probabiliste

Le modèle suppose une distribution normale des erreurs : ε ~ N(0, σ²). Intervalle de prédiction : *ŷ ± t SE √(1 + 1/n + (x - x̄)² / SXX)*. L'estimation du maximum de vraisemblance (MLE) optimise la log-vraisemblance.

Gestion des Valeurs Aberrantes

Méthodes de détection :

  • Distance de Mahalanobis : distance généralisée dans l'espace multivarié.
  • Distance de Cook : influence d'une observation sur les coefficients.
  • LOF (Local Outlier Factor) : densité locale.
  • RANSAC : consensus de sous-ensembles aléatoires.

Suppression ou régresseurs robustes (perte de Huber).

Descente de Gradient et Régularisation

Pour de grands jeux de données : optimisation itérative θ := θ - α ∇J(θ), où J est la fonction de coût.

  • L1 (Lasso) : |β|, parcimonie.
  • L2 (Ridge) : β², rétrécissement.

L'hyperparamètre λ est ajusté via validation croisée.

def gradient_descent(X, y, lr=0.01, epochs=1000):
    theta = np.zeros(X.shape[1])
    for _ in range(epochs):
        pred = X @ theta
        grad = X.T @ (pred - y) / len(y)
        theta -= lr * grad
    return theta

Points Clés à Retenir

  • La régression linéaire est un outil fondamental pour les relations linéaires, évolutif vers des tâches multivariées.
  • La MCO fournit une solution analytique ; la descente de gradient est pour les grands jeux de données.
  • Des métriques comme R² et RMSE évaluent la qualité ; les graphiques de résidus diagnostiquent les problèmes.
  • La régularisation (L1/L2) combat le surapprentissage et la multicolinéarité.
  • Le prétraitement (mise à l'échelle, suppression des valeurs aberrantes) est crucial pour la stabilité.

— Editorial Team

Advertisement 728x90

Lire ensuite