Algorithme de Regression Linéaire et Logistique

Author Profile - Paul Claret

By Paul Claret

10 minutes read - 10/12/24

La régression linéaire et logistique sont parmi les modèles les plus simples en machine learning. Mais ne vous laissez pas tromper par leur simplicité : ils restent des outils puissants et largement utilisés, surtout pour les problèmes où l’interprétabilité des résultats est essentielle.

Dans cet article, on va explorer ces deux types de régression, comprendre leurs mécanismes et découvrir dans quels cas ils sont particulièrement utiles.

Régression linéaire

C’est quoi ?

La régression linéaire est une méthode qui permet de prédire une valeur continue en se basant sur une ou plusieurs variables explicatives. Le principe ? Trouver une relation linéaire entre les variables d’entrée (les “features”) et la variable à prédire.

reg lineaire.avif

Le but est que l’ordinateur comprenne la relation linéaire entre les différentes données qu’on lui a fournis. Dans l’animation ci dessus, il commence par tracer une droite au hasard et petit a petit réduit la distance à tous les points ou plus précisement l’erreur au carré.

Exemple concret

Imaginez que vous voulez prédire le prix d’une maison en fonction de sa taille. Si on trace les données sur un graphique, la régression linéaire cherche à tracer une ligne droite (ou un plan dans des dimensions supérieures) qui s’ajuste le mieux possible aux points.

La formule générale est :

\[ Y=b_0+b_1X_1+b_2X_2+…+b_nX_n+\epsilon \]

Rien ne devais vous choquer ici, c’est juste un l’equation d’une courbe affine. L’expression est juste généralisé pour prendre plusieurs paramètres.

Comment ça fonctionne ?

L’algorithme cherche à minimiser la somme des erreurs au carré (erreurs = différence entre les valeurs prédites et les vraies valeurs). Cette technique s’appelle moindres carrés. L’expression de l’erreur est donc: \[ MSE_{(mean squared error)} = \sum_{i=1}^n(y_{real}-y_{pred})^2 \] A chaque itération, l’algorithme calcul cette erreur et determine comment il doit ajuster la courbe. Dans l’animation ci dessous: reg lineaire.avif

L’algorithme commence par tracer une courbe au hasard. Il calcule ensuite la distance entre les points et la courbe qu’il vient juste de tracer. Avec l’erreur pour tout les points, il les mets au carré et les somme. Cela lui donne l’erreur globale. Il ajuste ensuite la courbe en manipulant les coefficients de son équation \(b_0, b_1...,b_n\). Jusqu’à ce que l’erreur ne change plus ou très très peu.

Applications

Un petit example en python de ce que ça donne: lineaireregression_gif.gif


Régression logistique

C’est quoi ?

Contrairement à la régression linéaire, la régression logistique est utilisée pour des problèmes de classification binaire. Par exemple, prédire si un email est spam ou non spam, ou si un patient est malade ou non malade.

La régression logistique repose sur une idée simple : au lieu de prédire une valeur continue, elle prédit une probabilité. Cette probabilité est ensuite transformée en une classe (0 ou 1).

Pasted image 20241210065541.png Devient: Pasted image 20241210065605.png

Le fonctionnement mathématique

La régression logistique utilise une fonction appelée sigmoïde pour convertir une valeur continue en une probabilité comprise entre 0 et 1.

La formule est : \[ P(Y=1|X) = \frac{1}{1 + e^{-z}} \]\(z\) est défini comme dans la régression linéaire : \[ z = b_0 + b_1X_1 + b_2X_2 + ... + b_nX_n \] - Si \(P(Y=1|X) \geq 0.5\), le modèle prédit la classe 1. - Sinon, il prédit la classe 0.

Exemple concret

Supposons que vous travailliez dans une banque et que vous vouliez prédire si un client va rembourser un prêt ou non. Les variables explicatives pourraient inclure :

La régression logistique estime la probabilité que le client rembourse le prêt.

Et puis un exemple de reg logistique en python ressemble à ceci:

reglog.gif On voit bien que l’algorithme ici sur des valeurs simples arrive a determiner une barrière entre les deux types de données.

Applications


Comparaison entre régression linéaire et logistique

Aspect Régression linéaire Régression logistique
Type de problème Prédiction de valeurs continues Classification binaire (ou multi-classes avec variantes).
Sortie du modèle Une valeur numérique Une probabilité, transformée en classe (0 ou 1).
Applications typiques Prédiction de prix, estimation de valeurs Détection de spam, prédiction de risques.

Avantages et limites

Avantages

Limites

Ne sous-estimer pas la puissance de ces algorithmes

Dans les examples précédents, j’ai utilisé des polynômes du premie degré (puisque nous n’avons vu que des droites). Mais il est aussi possible de faire des polynômes de degré bien supérieurs pour avoir des formes plus complexes. Regardez ce que ces algorithmes peuvent faire avec un degré de 5:

reglin-d5.gif

Les données sont réparties de façons bien plus complexes et pourtant l’algorithme arrive presque à classer correctement toutes les valeurs (sauf celles en bas à gauche). Eh oui l’IA c’est pas que les réseaux de neurones.

Préparation des données pour la régression

Avant d’entraîner un modèle de régression, il est crucial de :

  1. Nettoyer les données : Supprimer ou traiter les valeurs manquantes et aberrantes.
  2. Standardiser les variables : En particulier pour la régression logistique, où la convergence de l’algorithme peut être influencée par l’échelle des variables.
  3. Vérifier les corrélations : Identifier les variables qui pourraient être redondantes.

Conclusion

La régression linéaire et logistique sont des outils essentiels en machine learning. Leur simplicité les rend idéales pour résoudre rapidement des problèmes pratiques, mais elles restent limitées face à des relations complexes ou des jeux de données très volumineux.

Dans le prochain article, on plongera dans d’autres algorithmes comme k-NN et k-means, qui abordent les données sous des angles différents, avec des applications variées en classification et en clustering.

Vous voulez apprendre l'IA en autonomie ?

Si vous êtes nouveau sur mon site, je vous invite à aller voir ma page sur Roadmap IA qui regroupe tous mes articles dans l'ordre pour vous facilitez l'apprentissage.