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.
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 :
- R² (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 :
- 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
Aucun commentaire pour le moment.