Avant de couvrir la régression logistique, revenons en arrière et examinons un peu la régression linéaire.
La régression linéaire est utilisée pour prédire les sorties sur un spectre continu. Par exemple, prévoir les revenus en fonction de la température de l'air extérieur. Supposons que vous ayez un stand de glace et que la température soit de 20 degrés, nous nous attendons à un revenu quotidien de 300 euros. La température augmentant, disons, de 35 degrés, nous avons pu augmenter le revenu, par exemple, de 700 euros par jour. Nous sommes en mesure d’atteindre un modèle linéaire ou en utilisant une régression linéaire qui est: $$ y=ax + b $$ L'élément clé ici est que les sorties étaient en fait un spectre continu qui signifie que le revenu peut aller par exemple, disons de cent euros jusqu'à mille euros.
La régression logistique est en réalité complètement différente. La régression logistique est utilisée pour prédire les sorties binaires. En termes simples, nous avons deux classes que nous appelons la classe 0 ou la classe 1. Par exemple, vous passez un examen et vous avez deux résultats probables: réussir ou échouer. Ou, comme un client qui entre dans une bijouterie, il va acheter ou non. Lorsque nous appliquons une régression logistique, l’idée générale est d’effectuer simplement une classification.
La régression logistique est l'algorithme de classification linéaire de référence pour les problèmes à deux classes (oui ou non / 0 ou 1). C'est très facile à mettre en œuvre. L’autre beauté de la régression logistique est qu’elle est facile à comprendre et qu’on peut obtenir de très bons résultats sur une grande variété de problèmes.
Un exemple de classification linéaire est présenté ci-dessous. Imaginez que vous avez un graphique avec des "x" à droite et des "o" à gauche. Votre objectif est de tracer une ligne qui sépare les "x" des "o". En traçant cette ligne, vous pourrez classer un nouveau point. Si ce nouveau point inconnu se trouve à droite de la ligne, il sera classé dans la catégorie "x". S'il se trouve à gauche de la ligne, il sera classé dans la catégorie "o".
La régression logistique est une technique utilisée dans le domaine des statistiques sous le nom de fonction logistique. Cette fonction, également appelée fonction sigmoïde, a été développée par les statisticiens pour décrire les propriétés de la croissance démographique en écologie.
Imaginez que vous souhaitiez prédire si un étudiant réussit ou non à l'examen en fonction du nombre d'heures d'étude. Vous aurez un graphique tel que celui ci-dessous.
L'utilisation de la régression linéaire pour un tel problème n'est pas une bonne solution. Vous pouvez voir que notre sortie vaut 0 ou 1 et n'est pas continue.
La sortie de la courbe en forme de S est zéro ou un. Cette courbe peut prendre n'importe quel nombre réel et la mapper sur une valeur comprise entre 0 et 1. Il s'agit de la fonction sigmoïde. $$ f ( x ) = \frac{1}{1+e^{-x}} $$
Où e est la base du logarithme naturel et x est la valeur numérique réelle que vous souhaitez transformer.
Voici un exemple en Python sur la façon d'appliquer la fonction sigmoïde sur un ensemble de valeurs réelles entre -8 et 8.
import numpy as np
import matplotlib.pylab as plt
x=np.arange(-8,8,0.1)
f=1 / (1 + np.exp(-x))
plt.plot(x,f)
plt.xlabel('x')
plt.ylabel('f(x)')
plt.show()
Pour revenir à notre problème, nous voulons prédire si un élève réussit ou échoue. Vous avez vu qu'un modèle linéaire ne convient pas. Nous voulons donc transformer ce modèle en un modèle de régression logistique.
Le modèle linéaire a une équation linéaire: $$y=b_0 + b_1 \times x$$
Nous appliquerons la fonction sigmoïde: $$P(x) = sigmoid(y)$$ $$P(x) = \frac{1}{1+e^{-y}} $$ $$P(x) = \frac{1}{1+e^{-(b_0 + b_1 \times x)}} $$
P(X) est une probabilité et va de zéro à un. Cela nous donne la probabilité attendue pour une entrée spécifique. Supposons que X soit une heure d'étude, P(X) donnera la probabilité de réussite attendue. Nous pouvons l'écrire comme suit: $$P(X) = P ( Y = 1 | X) $$ Tels que X est l'entrée et Y = 1 est la classe par défaut ("passer" dans notre exemple).
Ce que nous avons fait, nous avons pris l’équation linéaire et sommes passés d’une sortie continue à une probabilité allant de zéro à une qui convient parfaitement à notre problème de classification.
Nous prédisons ici des probabilités, mais la régression logistique est un algorithme de classification et nous voulons prédire 0 ou 1?