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 module sklearn.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 en np, utilisée pour le calcul scientifique et la manipulation de tableaux multidimensionnels.
    
    import pandas as pd importe la bibliothèque pandas, renommée ici en pd, 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ées X (entrées) et y (sorties attendues). Cela signifie que le modèle calcule les meilleurs coefficients linéaires pour représenter la relation entre X et y.
    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 de X. Le résultat est stocké dans y_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 de X sur y. 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 de X. Puisque les données suivent une relation parfaitement linéaire (y = x), les prédictions seront très proches des valeurs de y.