Régression linéaire
La régression linéaire est une méthode statistique fondamentale utilisée pour modéliser la relation entre une variable dépendante et une ou plusieurs variables indépendantes. L’objectif principal est d’établir une équation linéaire qui prédit la valeur de la variable cible à partir des variables explicatives.
Cette méthode repose sur l’hypothèse que la relation entre les variables peut être approximée par une droite (dans le cas d’une variable indépendante) ou un hyperplan (dans le cas de plusieurs variables). La régression linéaire estime les coefficients de cette droite ou hyperplan en minimisant la somme des carrés des différences entre les valeurs observées et les valeurs prédites (méthode des moindres carrés).
La régression linéaire est largement utilisée en science des données, économie, ingénierie, biologie, et dans de nombreux autres domaines pour comprendre les relations entre variables, prédire des résultats, et quantifier l’impact des variables explicatives.
Elle permet également d’évaluer la qualité du modèle grâce à des métriques telles que le coefficient de détermination (R²), les erreurs quadratiques moyennes, et de tester la significativité statistique des coefficients.
En résumé, la régression linéaire est un outil simple, efficace, et puissant pour modéliser et interpréter des relations linéaires dans les données.
Fonctions :
-
LinearRegression()
La fonction LinearRegression() permet de créer un modèle de régression linéaire, un algorithme d'apprentissage supervisé utilisé pour prédire une variable cible continue en fonction d'une ou plusieurs variables indépendantes. Ce modèle suppose une relation linéaire entre les variables.
Importation :
from sklearn.linear_model import LinearRegression
Attributs :
Paramètre
Description
fit_intercept
Booléen. Si True
, le modèle inclura un terme d'interception (biais). Par défaut, il est égal àTrue
.normalize
Booléen. Si True
, les données d'entrée seront normalisées avant l'ajustement. Déprécié dans les versions récentes de scikit-learn.n_jobs
Entier. Le nombre de jobs à utiliser pour la procédure d'ajustement en parallèle. Par défaut, None
(aucun parallélisme).positive
Booléen. Si True
, les coefficients de régression sont contraints à être positifs. Par défaut,False
.Exemple de code :
from sklearn.linear_model import LinearRegression import numpy as np import pandas as pd # Création de données fictives X = np.array([[1], [2], [3], [4], [5]]) # Variable indépendante y = np.array([1, 2, 3, 4, 5]) # Variable cible # Initialisation du modèle model = LinearRegression() # Entraînement du modèle model.fit(X, y) # Prédictions avec le modèle y_pred = model.predict(X) # Affichage des résultats print("Coefficients:", model.coef_) print("Intercept:", model.intercept_) print("Prédictions:", y_pred)
Explication du code :
from sklearn.linear_model import LinearRegression
importe la classe LinearRegression du modulesklearn.linear_model
, utilisée pour créer un modèle de régression linéaire.import numpy as np
importe la bibliothèque NumPy, renommée ici ennp
, utilisée pour le calcul scientifique et la manipulation de tableaux multidimensionnels.import pandas as pd
importe la bibliothèque pandas, renommée ici enpd
, utilisée pour la manipulation et l’analyse de données sous forme de tableaux (DataFrame).Création de données fictives
X = np.array([[1], [2], [3], [4], [5]])
crée un tableau NumPy à deux dimensions représentant la variable indépendante (aussi appelée variable explicative ou caractéristique).y = np.array([1, 2, 3, 4, 5])
crée un tableau NumPy à une dimension représentant la variable cible (la valeur que l’on veut prédire).Initialisation du modèle
model = LinearRegression()
initialise un objet régression linéaire vide nommémodel
, prêt à être entraîné sur des données.Entraînement du modèle
model.fit(X, y)
entraîne (ou "fit") le modèle de régression linéaire sur les donnéesX
(entrées) ety
(sorties attendues). Cela signifie que le modèle calcule les meilleurs coefficients linéaires pour représenter la relation entreX
ety
.Prédictions avec le modèle
y_pred = model.predict(X)
utilise le modèle entraîné pour effectuer des prédictions sur les mêmes valeurs deX
. Le résultat est stocké dansy_pred
.Affichage des résultats
print("Coefficients:", model.coef_)
affiche le coefficient (ou pente) de la droite de régression calculée. Cela indique l’impact deX
sury
.print("Intercept:", model.intercept_)
affiche l’ordonnée à l’origine (ou "biais") de la droite de régression.print("Prédictions:", y_pred)
affiche les valeurs prédites par le modèle pour chaque valeur deX
. Puisque les données suivent une relation parfaitement linéaire (y = x), les prédictions seront très proches des valeurs dey
.