You are currently viewing Régression linéaire avec les Équations Normales

Régression linéaire avec les Équations Normales

  • Post category:Regression

Introduction

En Machine Learning, la méthode des équations normales est une méthode d’optimisation permettant de résoudre des problèmes de régression, c’est-à-dire des problèmes visant à prédire une variable continue (une quantité). La figure ci-dessous illustre un exemple de ce genre de problème, avec sur la droite la solution recherchée. Le but est ici de trouver quel est le modèle qui minimise l’erreur quadratique moyenne (la MSE : Mean Squared Error), c’est-à-dire la distance euclidienne moyenne entre les points et la droite du modèle.

Problème de regression

Recherche du meilleur modèle

Le modèle que l’on cherche à développer est un modèle linéaire, c’est-à-dire un modèle de la forme:

f(x) = ax + b

(ou pour la forme générale : f(x_1, ..., x_n) = \displaystyle \sum_{j=1}^{n} w_j x_j + b )

Pour trouver un “bon” modèle, il faut tester différentes valeurs pour ces paramètres w_j en mesurant les valeurs qui donnent les plus petites erreurs. Ces erreurs sont mesurées par  la MSE :

MSE = \frac{1}{2m} \displaystyle \sum_{i=1}^{m} (f(x) - y)^2

 

La figure ci-dessous montre le résultat de plusieurs valeurs de “a” testées pour un modèle du type f(x) = ax + b. Le graphique de la MSE montre une forme de parabole indiquant quelle est la meilleure valeur de “a” pour notre modèle (celle au minimum de la parabole). Il existe 2 approches pour trouver ce minimum. La première est la descente de gradient, et la deuxième est la méthode des équations normales.

Recherche du minimum

Les Équations Normales

la méthode des équations normales consiste à trouver le point minimum de la courbe de MSE en calculant la position à laquelle cette courbe donne une dérivée nulle. Car en mathématique, une dérivée nulle est indicative d’un minimum, d’un maximum ou bien d’un plateau. Or la formule de la MSE (et son graphique parabolique) permet de déduire qu’il n’y a ni maximum, ni plateau. De cette manière, en trouvant les coordonnées \theta = [w_j, b] satisfaisant une dérivée de MSE nulle, on est certain d’obtenir le meilleur modèle possible (celui qui minimise la MSE). Voici les maths :

Notre modèle (sous forme vectorielle):

F = X.\theta

La MSE :

MSE = \frac{1}{2m} \displaystyle \sum_{i=1}^{m} (X.\theta - y)^2

La dérivée de la MSE (par rapport aux paramètres du modèle):

\displaystyle \frac{\partial MSE }{\partial \theta } = \frac{1}{m} X^T (X.\theta - y)

 

Comme énoncé plus haut, la méthode des équations normales cherche la valeur de \theta qui assure une dérivée nulle. On commence donc par poser :

\displaystyle \frac{\partial MSE }{\partial \theta } =  0

En développant cette formule, on arrive à celle des équations normales:

\theta = (X^T.X)^{-1}.X^T.y

La démonstration complète de cette formule est disponible en vidéo ici

Le code

[code lang=”python”]
import numpy as np
import matplotlib.pyplot as plt

# Génération de données
m = 100
X = np.linspace(0, 10, m).reshape(-1, 1)
y = 0.6 * X + 40 + np.random.randn(m, 1)

# Formule des équations normales
theta = np.dot(np.linalg.pinv(X.T.dot(X)), X.T.dot(y))

# Utilisation du modele pour effectuer des prédictions
predictions = X.dot(theta)
[/code]

Cet article a 11 commentaires

  1. Thomas

    Bonjour,
    Tout d’abord, article très intéressant, merci :-))

    Je trouve vos graphiques super attractifs, avec quoi les réaliser vous? Quel logiciel ?
    J’aimerai aussi pouvoir faire le style surlignage pour mes fiches de révision, merci par avance !

    Thomas

    1. Guillaume Saint-Cirgue

      Merci beaucoup Thomas. Je fais mes graphiques sur tablette en dessinant au stylet dans l’application Bloc note d’Apple.

      1. Thomas

        D’accord, c’est la tablette qui fait tout le style en fait? Car Bloc note Apple est très simpliste si je dis pas de bêtise ^^

        Vous avez quelle tablette ? (j’en vois tellement :p)

        1. Guillaume Saint-Cirgue

          C’est un Ipad 6eme génération. En effet le bloc note est très simpliste mais avec un stylet on peut faire des graphiques sympas 🙂

  2. Malick NDIAYE

    Bonjour Guillaume,
    J’ai bien compris l’aspect mathématique et beaucoup de codes de modèle de régression linéaire à travers
    vos vidéos et je vous en remercie énormément. Cependant, j’aimerais également comprendre comment implémenter
    avec python, l’équation du modèle de machine learning.
    Je vous remercie encore une fois de plus.

    1. Guillaume Saint-Cirgue

      Bonjour, je vous conseille de suivre ma série de videos Python Machine Learning pour répondre a cette question

  3. Imane

    Bonjour,
    merci beaucoup pour le cours c est formidable
    je veux svp le code entier 🙂
    merci

  4. Esso

    Vous êtes au top Monsieur.
    Que Dieu vous garde pour les jeunes apprenants comme nous . Je vous souhaite tout le meilleur que vous désirez

  5. IBRAHIM

    Bonjour,Guillaume,
    Moi c’est IBRAHIM,
    Vraiment j’ai trouvé votre article très intéressent et très bien détaillé.
    Moi je suis nouveau et c’est ma toute première fois de vous lire,maintenant j’aimerais savoir
    comment je peux faire pour parvenir à vous lire à chaque fois que vous postez??? .

    1. Guillaume Saint-Cirgue

      Bonjour et merci beaucoup
      Pour rester informé des nouveautés, il suffit de vous abonnez a la newsletter en téléchargeant le livre gratuit.

      1. IBRAHIM

        Bonjour,
        Ok c’est compris mais le livre est téléchargeable sur google?

Les commentaires sont fermés.