Régression linéaire simple

Aucune carte

Concepts 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
Meilleure ligne d'ajustement en régression linéaire

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 )
Simple Linear Regression

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