Régression multiple
Dans cet article, nous explorerons la régression linéaire multiple, une technique puissante d'apprentissage automatique pour prédire des valeurs numériques continues à partir de plusieurs variables prédictives. Avec l'aide de Python, nous construirons et analyserons un modèle capable de prédire un résultat numérique en fonction de plusieurs caractéristiques d'entrée.
Qu'est-ce que la régression linéaire multiple ?
La régression linéaire est une technique utilisée pour modéliser la relation entre une variable dépendante et une ou plusieurs variables indépendantes. Lorsqu'il n'y a qu'une seule variable indépendante, on parle de régression linéaire simple. Cependant, lorsqu'il y a plusieurs variables indépendantes, on parle de régression linéaire multiple.
En régression linéaire multiple, l'objectif est de trouver la droite de meilleure adaptation qui prédit la variable dépendante en fonction des variables indépendantes. Cette droite est déterminée en minimisant la somme des carrés des distances entre les valeurs observées et les valeurs prédites. Les coefficients de la droite représentent la relation entre chaque variable indépendante et la variable dépendante, tandis que l'ordonnée à l'origine représente la valeur attendue de la variable dépendante lorsque toutes les variables indépendantes sont nulles.
Le jeu de données
Pour illustrer la régression linéaire multiple, nous utiliserons le jeu de données California Housing, qui contient des informations sur le logement en Californie. Ce jeu de données comprend 20 640 échantillons et 8 caractéristiques, la valeur médiane des maisons (en centaines de milliers de dollars) servant de variable dépendante.
from sklearn.datasets import fetch_california_housing
housing = fetch_california_housing()
X = housing.data
y = housing.target
feature_names = housing.feature_namesPrétraitement des données
Avant de pouvoir construire le modèle, nous devons prétraiter les données. Cela implique de les diviser en ensembles d'entraînement et de test, ainsi que de mettre à l'échelle les caractéristiques pour garantir qu'elles contribuent également au modèle.
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Scale features
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)Construction du modèle
Les données étant prétraitées, nous pouvons maintenant construire le modèle de régression linéaire multiple. Nous utiliserons la classe LinearRegression de scikit-learn, qui offre un moyen simple et efficace d'implémenter l'algorithme.
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train_scaled, y_train)La méthode .fit() calcule les coefficients optimaux qui minimisent la somme des carrés des résidus.
Évaluation du modèle
Pour évaluer les performances du modèle, nous utiliserons deux métriques : l'erreur quadratique moyenne (MSE) et le coefficient de détermination (R²).
from sklearn.metrics import mean_squared_error, r2_score
y_pred = model.predict(X_test_scaled)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"Mean Squared Error: {mse:.4f}")
print(f"R-squared: {r2:.4f}")La MSE mesure la différence quadratique moyenne entre les valeurs prédites et les valeurs réelles, tandis que le R² indique la proportion de variance de la variable dépendante expliquée par le modèle.
Interprétation des coefficients du modèle
Les coefficients du modèle représentent la relation entre chaque variable indépendante et la variable dépendante. Un coefficient positif indique que la variable a un effet positif sur la variable dépendante, tandis qu'un coefficient négatif indique l'inverse.
for name, coef in zip(feature_names, model.coef_):
print(f"{name}: {coef:.4f}")En examinant ces valeurs, vous pouvez déterminer quelles caractéristiques ont l'influence la plus forte sur la variable cible.
Conclusion
Dans cet article, nous avons exploré le concept de régression linéaire multiple et son utilisation pour prédire un résultat numérique continu à partir de plusieurs variables prédictives. Nous avons utilisé Python et la bibliothèque scikit-learn pour construire et évaluer un modèle de régression linéaire multiple à l'aide du jeu de données California Housing. Les résultats montrent que le modèle est capable de prédire les valeurs médianes des maisons avec une précision raisonnable, et les coefficients fournissent un aperçu de la relation entre les variables indépendantes et la variable dépendante.