Régression linéaire simple
Aucune carteConcepts et implémentation de la régression linéaire simple en apprentissage automatique, incluant la notion de meilleure ligne d'ajustement, l'utilisation de variables indépendantes pour prédire des valeurs continues, et les bases de l'importation des bibliothèques Python.
Régression Linéaire en Machine Learning
La régression linéaire est un algorithme d'apprentissage supervisé fondamental qui modélise la relation entre une variable dépendante (sortie) et une ou plusieurs variables indépendantes (entrées). Elle prédit des valeurs continues en supposant l'existence d'une relation linéaire entre les données.
Concepts Fondamentaux
La droite de meilleure adaptation est celle qui modélise optimalement la relation entre la variable indépendante et la variable dépendante. Elle est déterminée de manière à minimiser l'écart entre les valeurs observées et les valeurs prédites par le modèle.
Applications principales :
- Prévisions et estimations
- Analyse des tendances
- Modélisation prédictive
Régression Linéaire Simple
La régression linéaire simple utilise une seule variable indépendante pour prédire la variable dépendante. L'équation de la ligne s'exprime ainsi :
Où :
- est la valeur prédite (variable dépendante)
- est l'entrée (variable indépendante)
- est la pente de la droite (variation de quand change)
- est l'interception (valeur de quand )
Implémentation en Python - Régression Simple
Étape 1 : Préparation des données
Créer ou charger un fichier CSV contenant les données :
surface,prix
50,500000
60,600000
70,650000
80,800000
90,900000
100,1000000
Étape 2 : Chargement et initialisation des variables
Importer les bibliothèques nécessaires et charger les données :
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
# Charger les données
data = pd.read_csv("maisons_simple.csv")
# Définir les variables
X = data[['surface']] # entrée (variable indépendante)
y = data['prix'] # sortie (variable dépendante)
Étape 3 : Création et entraînement du modèle
# Créer le modèle
model = LinearRegression()
# Entraîner le modèle
model.fit(X, y)
Étape 4 : Affichage des résultats
print("Coefficient (prix par m²) :", model.coef_[0])
print("Intercept :", model.intercept_)
Étape 5 : Représentation graphique
# Créer les prédictions
y_pred = model.predict(X)
# Tracer les points et la droite
plt.scatter(X, y) # données réelles
plt.plot(X, y_pred) # droite de régression
plt.xlabel("Surface (m²)")
plt.ylabel("Prix")
plt.title("Régression Linéaire - Prix des maisons")
plt.show()
Étape 6 : Test de prédiction
surface_test = [[120]]
prix = model.predict(surface_test)
print("Prix estimé pour 120 m² :", prix[0], "DH")
Régression Linéaire Multiple
La régression linéaire multiple utilise plusieurs variables indépendantes pour prédire la variable dépendante. La formule générale est :
Exemple avec trois variables : prix = + · surface + · chambres + · age
Implémentation en Python - Régression Multiple
Étape 1 : Création du dataset
import pandas as pd
data = {
'surface': [50, 80, 120, 150],
'chambres': [1, 2, 3, 4],
'age': [10, 5, 2, 1],
'prix': [100000, 180000, 300000, 400000]
}
df = pd.DataFrame(data)
Étape 2 : Définition des variables d'entrée et sortie
X = df[['surface', 'chambres', 'age']] # variables indépendantes
y = df['prix'] # variable dépendante
Étape 3 : Création et entraînement du modèle
from sklearn.linear_model import LinearRegression
# Créer le modèle
model = LinearRegression()
# Entraîner le modèle
model.fit(X, y)
Étape 4 : Prédiction pour une nouvelle maison
nouvelle_maison = [[90, 3, 4]] # surface, chambres, age
prix = model.predict(nouvelle_maison)
print("Prix estimé :", prix)
Étape 5 : Visualisation de l'influence des paramètres
import matplotlib.pyplot as plt
# Tracer chaque paramètre vs prix
plt.plot(df['surface'], df['prix'], marker='o', label='Surface')
plt.plot(df['chambres'], df['prix'], marker='*', label='Chambres')
plt.plot(df['age'], df['prix'], marker='^', label='Age')
# Configuration du graphique
plt.title("Influence des paramètres sur le prix")
plt.xlabel("Valeurs des paramètres")
plt.ylabel("Prix")
plt.legend()
plt.show()
Points Clés à Retenir
- La régression linéaire suppose une relation linéaire entre les variables
- Le coefficient (ou pente) indique la force et la direction de la relation
- L'interception représente la valeur prédite de base
- En régression multiple, chaque coefficient mesure l'impact de sa variable correspondante sur la sortie
- La régression linéaire est simple, interprétable et efficace pour les relations linéaires
- Python avec scikit-learn facilite l'implémentation et l'entraînement rapides
Lancer un quiz
Teste tes connaissances avec des questions interactives