Régression logistique

Adrien Guille, Université Lyon 2

Partie théorique

Partie pratique

Formulation du modèle

Soit le jeu de données composé de paires , avec la description d'un individu selon descripteurs, sous la forme d'un vecteur réel de taille , et la classe d'appartenance de cet individu parmi 2 classes possibles :

La régression logistique (Cox 1958) modélise la probabilité conditionnelle de la manière suivante :

On reconnaît la fonction sïgmoide, , aussi appelée fonction logistique (voir la figure 1 à la fin de cette section) :

avec , qui est une fonction linéaire de :

En attribuant la modalité la plus probable (c'est-à-dire lorsque , et sinon) à l'individu , on obtient un classifieur binaire minimisant le taux d'erreur. ​
Plus particulièrement, on obtient un classifieur linéaire, puisque la probabilité qu'un individu appartienne à une classe ou une autre dépend uniquement de , qui est une fonction linéaire. Autrement dit, la frontière séparant la classe de la classe est un hyperplan. Comme la fonction pour , l'équation de l'hyperplan est obtenue en résolvant .

Fonction sigmoïde

Figure 1 : Représentation de la fonction sigmoïde sur l'intervalle [-10;10]

Estimation des paramètres du modèle

Formulation du problème : maximisation de la vraisemblance

En supposant que les individus composant sont indépendants, on peut définir , la vraisemblance des données vis-à-vis du modèle logistique paramétré par . C'est le produit des probabilités selon ce modèle que chaque individu dans appartienne à la classe observée :

Il s'agit donc de déterminer le vecteur de paramètres maximisant la vraisemblance des données :

Pour identifier , la première chose à faire serait de dériver la vraisemblance par rapport à chaque composante de , , pour ensuite résoudre . En effet, étant convexe en (ce que l'on montre en calculant les dérivées secondes, ce qu'on ne fera pas pas dans ce cours), la solution de l'équation donne la valeur optimale du coefficient . ​
Néanmoins, on remarque que, le logarithme étant une fonction strictement croissante, maximiser la vraisemblance est équivalent à maximiser le logarithme de la vraisemblance, , dont l'expression est plus simple à dériver (le logarithme transformant les produits en sommes et les exposants en facteurs) :

Il s'agit donc désormais de déterminer le vecteur de paramètres maximisant la log-vraisemblance des données :

Nous allons donc devoir exprimer . Avant cela, nous pouvons convenir d'une notation légèrement différente, afin d'améliorer la lisibilité des formules. Nous considérerons que chaque vecteur a une composante supplémentaire, , toujours égale à 1. Ainsi nous pouvons ré-écrire , de telle sorte que le paramètre de la fonction sigmoïde soit le produit scalaire des vecteurs et :

L'expression à dériver est donc la suivante :

Calculons d'abord :

Calculons maintenant :

En introduisant cela dans on obtient :

Il se trouve qu'on ne peut pas résoudre analytiquement , nous allons donc devoir approcher la solution par une méthode numérique.

Résolution du problème : méthode du gradient

Le gradient est le vecteur des dérivées partielles par rapport aux composantes de . Il existe plusieurs variantes plus ou moins sophistiquées de la méthode du gradient pour approcher , nous allons voir ici la variante la plus élémentaire.

Partant d'un vecteur initialisé aléatoirement, et étant donné un pas d'apprentissage , la méthode va corriger de manière itérative. À chaque itération, la règle suivante est appliquée pour calculer la nouvelle valeur de :

Cette stratégie repose sur le fait que, dans le voisinage de , la log-vraisemblance croît le plus fortement dans la direction du gradient . Ayant définit un seuil , dit « seuil de convergence », la méthode s'arrête lorsque la condition suivante est satisfaite (on dit alors que la méthode a convergé) :

Cette variante de la méthode du gradient se traduit par l'algorithme suivant :

  1. Initialiser aléatoirement ;

  2. Calculer ;

  3. Tant que :

    1. Affecter à sa nouvelle valeur ;
    2. Recalculer ;
  4. Retourner .

Illustration

Les figures 2 et 3 ci-après montrent comment l'algorithme du gradient modifie successivement sur un petit jeu de données, en partant de 2 initialisations différentes. Malgré deux initialisations différentes (les points blancs), l'agorithme converge vers la même solution dans les deux cas (les points rouges). Néanmoins, on remarque que dans le second cas, l'initialisation étant plus éloignée de la solution, l'algorithme doit réaliser plus d'itérations que dans le premier cas avant d'atteindre le seuil de convergence. ​
Initialisation à (0, 0)

Figure 2 : Illustration de la trajectoire suivie jusqu'à convergence, en partant du point (0,0)

Initialisation à (1, 1)

Figure 3 : Illustration de la trajectoire suivie jusqu'à convergence, en partant du point (1,1)

Estimation des paramètres du modèle en pratique

Considérons un jeu de données d'apprentissage comportant 100 individus, chacun décrivant une fleur selon deux descripteurs, à savoir la longueur du sépal et la largeur du sépal en cm. Ces individus sont répartis à parts égales entre deux classes, l'une correspondant à la variété « Iris Setosa » et l'autre à la varité « Iris Versicolour ». Il s'agit donc de construire un modèle capable de distinguer les Iris Setosa des Iris Versicolour.

La [figure 4] (#animation_gradient) montre l'évolution du taux d'erreur, au fur et à mesure que la méthode du gradient rectifie pour augmenter la log-vraisemblance en adaptant le modèle logistique aux données d'apprentissage. On observe qu'à l'initialisation, le modèle associe toutes les observations à la classe positive. Le jeu de données étant équilibré, cela correspond à un taux d'erreur de 50%. Progressivement, le modèle classifie de mieux en mieux les données d'apprentissage, jusqu'à atteindre un taux d'erreur nul.

Figure 4 : Déroulement de la méthode du gradient sur les données Iris.

Interprétation du modèle

Calcul des cotes

Pour un individu , on définit sa cote d'appartenance à une classe donnée, , que l'on note , comme le rapport entre la probabilité qu'il y appartienne (c'est-à-dire ) et la probabilité qu'il n'y appartienne pas (donc ):

Par exemple, si alors et ainsi , ce qui signifie que l'individu a 4 fois plus de chances d'appartenir à la classe que de ne pas y appartenir.

Calcul des rapport de cotes

Typiquement, on calcule un rapport de cotes pour savoir de quelle manière évolue la probabilité d'appartenance à la classe lorsque la valeur prise par une des variable augmente de 1, toutes les autres variables étant constantes. Pour ce faire, on définit deux individus factices et , prenant la même valeur pour toutes les variables (0, pour simplifier les calculs), sauf pour la variable dont on veut quantifier l'effet, de sorte que prenne la valeur 1 et la valeur 0 :

et .

Ensuite, on mesure la cote de chaque individu, puis on calcule le rapport de la sorte :

Puisque seul est non nul, et plus précisément égal à 1, on peut simplifier l'expression jusqu'à obtenir :

Interprétation des rapports de cotes

Un rapport de cotes s'interprète globalement ainsi :

Régression logistique avec R et le paquet «caret»

Le code ci-dessous montre comment, à l'aide du paquet «caret», construire un classifieur basé sur la régression logistique. Les données décrivent 2201 passagers du Titanic, selon 6 descripteurs binaires :

La classe, Survie, est binaire ('oui' ou 'non').

 

On obtient les rapports de cotes suivants :

VariableRapport de cote
X1ereClasse2.35
X2ndeClasse0.85
X3emeClasse0.39
Enfant2.89
Genre11.24

D'après ce modèle, donc, un passager féminin a environ 11 fois plus de chances de survivre qu'un passager masculin ayant les mêmes caractéristiques par ailleurs. Un enfant a presque 3 fois plus de chance de survivre qu'un adulte de même sexe et voyageant dans la même classe. Au contraire, un passager de 3ème classe, a environ 2.5 (1/0.39) fois moins de chance de survivre qu'un passager d'une autre classe.