Algorithme de Regression Linéaire et Logistique
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.
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 \]
- \(Y\) : La variable cible (par exemple, le prix de la maison).
- \(X_1, X_2, ..., X_n\): Les variables explicatives (taille, nombre de chambres, etc.).
- \(b_0\) : L’ordonnée à l’origine (le point où la ligne coupe l’axe YY).
- \(b_1, b_2, ..., b_n\) : Les coefficients qui définissent l’impact de chaque variable explicative.
- \(\epsilon\) : L’erreur ou bruit aléatoire.
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:
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
- Prédire le prix d’un produit en fonction des tendances du marché.
- Estimer la consommation d’énergie d’un bâtiment en fonction des conditions météorologiques.
Un petit example en python de ce que ça donne:
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).
Devient:
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}} \] où \(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 :
- Le revenu annuel.
- La durée d’emploi.
- Le montant du prêt.
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:
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
- Détection de fraude : Classifier une transaction comme frauduleuse ou non.
- Diagnostic médical : Identifier si une maladie est présente ou non.
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
- Faciles à implémenter : Idéal pour débuter en machine learning.
- Interprétables : On peut facilement comprendre l’impact des variables sur la prédiction.
- Efficaces sur des petits jeux de données : Ces modèles ne nécessitent pas des tonnes de données pour bien fonctionner.
Limites
- Pas adaptées aux relations complexes : Les deux types de régression supposent une relation linéaire entre les variables. Si la relation est non linéaire, ces modèles peuvent être inefficaces.
- Sensibles aux variables inutiles : Les performances peuvent être affectées si les données contiennent des variables non pertinentes ou fortement corrélées entre elles.
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:
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 :
- Nettoyer les données : Supprimer ou traiter les valeurs manquantes et aberrantes.
- 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.
- 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.