1/ Petit rappel : la régression logistique permet de faire de la classification entre 2 catégories.
C'est un modèle performant et TRES TRES utilisé à travers le monde.
2/ Exemple de cas d'usage :
> une banque donne un prêt (ou pas)
> le médecin détecte cette maladie (ou pas)
> le site ecommerce propose ce produit au client (ou pas)
> le client se désabonne du service (ou pas)
3/ On trouve la régression logistique absolument dans tous les domaines
Son efficacité a largement fait ses preuves.
C'est un des modèles les plus utilisés, encore maintenant.
Il comporte de nombreux avantages (besoin de peu de données, interprétabilité, rapidité ...)
4/ Et ce que je n'ai pas encore dit, c'est qu'il s'agit d'apprentissage supervisé
c'est à dire qu'il faut des données exemple pour construire le modèle
Ces données exemple sont labellisées avec l'une des deux catégories
Mais ca, vous le saviez déjà !
5/ Une remarque sémantique
Dans le nom du modèle, on parle de "régression", alors qu'il sert à faire de la "classification"
C'est pas un peu fourbe ça, car régression veut dire prédiction de valeur, et non classification !
6/ En fait, le modèle fait de la régression de "probabilité" d'appartenir à l'une des deux classes
Et en fonction de cette probabilité et d'un seuil fixé, (classiquement 50%), il sera classifié
7/ On parle aussi de "logistique"
Mais ça n'a rien à voir avec les entrepôts d'Amazon !
C'est juste qu'une fonction spéciale, appelée fonction logistique (ou fonction sigmoïde), qui est utilisée pour évaluer le modèle
C'est la fonction d'activation du modèle
8/ Comment marche le modèle de régression logistique en mode inférence
Le mode inférence, c'est le mode classification, après avoir appris à partir des données d'entraînement
C'est relativement simple !
Et c'est ce qui fait la force de ce modèle
9/ Illustrons :
En entrée, on a les n caractéristiques que l'on veut évaluer
Par exemple, dans le cas du prêt bancaire :
l'âge du client, son salaire, ses dettes, son statut marital, ...
Ce seront des valeurs numériques, normalisées (elles sont toutes sur une même échelle)
10/ Disons pour simplifier que les données d'entrée n'ont que 10 caractéristiques
En face de ces 10 nombres en entrée, le modèle utilise 10 coefficients
Ces coefficient ont été déterminés pendant la phase d'apprentissage.
Et il y aura un 11 coefficient qui est le biais
11/ Appelons les caractéristiques Clients, les xi
et les coefficients du modèle les wi
(i allant de 1 à 10)
N'oublions pas w0, qui est le biais du modèle
12/ Pour l'inférence, le modèle multiplie simplement chaque xi avec le wi du modèle correspondant
On obtient alors 10 nombres différents qui sont ensuite additionnés
Et on ajoute également le biais
Pour obtenir un seul nombre final, qui peut être positif ou négatif
13/ Ensuite le nombre obtenu est passé dans la fonction logistique, qui a cette tête là.
Elle est aussi appelée fonction "sigmoide"
14/ Pas de panique si vous ne connaissez pas cette fonction sigmoide
Le "e" qui apparaît au dénominateur, c'est la fonction exponentielle
Et si on regarde la variation de la fonction, elle tend
> vers 0 quand on va vers - infini
> vers 1 quand on va vers + infini
15/ Comme on a un résultat borné entre 0 et 1, on peut l'interpréter comme un pourcentage.
Et généralement, ce qui est fait:
- si le résultat est supérieur à 0.5, c'est la classe 1 qui est choisie
- sinon c'est l'autre catégorie
16/ Bon, là on a fait une revue assez globale de ce qu'est la régression logistique
Mais je vous avais promis une approche originale, vous vous en rappelez ?
je vous en parle dès maintenant
17/ Plutôt qu'une approche avec des équations un peu sèches, faisons plutôt une approche géométrique pour bien comprendre ce qu'il se passe
En passant, l'aide de la géométrie m'a beaucoup servi à comprendre les concepts compliqués de Datascience ...
18/ Pour pouvoir bien visualiser ce qui se passe, on va se contenter d'un modèle a 2 variables, pour le représenter dans le plan
Mais un modèle à 10, ou même 100 variables, voire beaucoup plus, cela sera exactement les mêmes principes
19/ Supposons qu'on a nos données comme ça, avec deux populations bien distinctes, que l'on représente suivant leur deux caractéristiques x1 et x2
20/ Ce que fait la régression logistique pendant la phase d'apprentissage, c'est simplement de déterminer la droite qui sépare le mieux les deux populations de points
On verra comment marche cette phase d'apprentissage dans un autre tweet
21/ Ensuite pendant la phase d'inférence, quand un nouveau point doit être évalué et classifié, on va juste calculer la distance qui le sépare de cette droite.
Sur le schéma, ce sont les distances d1 et d2
22/ Et plus cette distance qui sépare le point de la droite est grande (positive ou négative), plus les chances que le point soit dans une classe sont grandes
Inversement, plus la frontière est proche du point, et plus il y a d'incertitude
23/ Autrement dit, plus le point est proche de la droite, et moins cette probabilité sera tranchée
On sera dans une zone d'incertitude (probabilité proche de 0.5)
Et si le point est sur la droite, on sera en pleine incertitude
24/ Allons plus loin dans l'interprétation (et c'est là que cela devient marrant)
Vous vous rappelez des coefficients wi du modèle dont on a parlé un peu avant ?
Dans le cas de notre modèle à 2 variables, on aura donc w0, w1 et w2
25/ On peut donner un sens géométrique à ces coefficients
En fait ces coefficients définissent la droite qui sépare les deux populations de points
la droite est définie par l'équation
w1.x + w2.y + w0 = 0
26/ Simple remarque en passant
si on a un point avec des caractéristiques Xa et Ya telles que w1.Xa + w2.Ya + w0 = 0
alors le point tombe sur la droite
et la fonction sigmoide vaudra 0.5 = (1/(1+1)) car exp(0)=1
Pleine indétermination pour ce point
27/ Maintenant, prenons un point de coordonnées Xb et Yb qui n'appartient pas à cette droite.
Ce qui est magique c'est que la somme
w1.Xb + w2.Yb + w0
représente exactement la distance entre le point et la droite
28/ Attention je rappelle que la distance peut être positive ou négative, suivant la position du point par rapport à la droite
29/ Pour montrer cela, il faut se rappeler d'un petit peu de maths apprises au lycée.
Et pour commencer, si on a une droite d'équation w1.x + w2.y + w0 = 0
alors le vecteur n de coordonnées (w1,w2) est normal à cette droite
30/ La démonstration est simple, je vous la donnerai plus tard, c'est promis
31/ Et donc, quand on évalue la somme
w1.Xb + w2.Yb + w0
cela revient à faire le produit scalaire entre
> le vecteur normal (w1, w2) de la droite
> et tout vecteur entre un point de la droite et le point B.
32/ Cette quantité, cette somme dont on parle depuis tout à l'heure, c'est donc juste un produit scalaire entre deux vecteurs
l'un étant normal à la droite
l'autre étant dépendant du point en question
Cette quantité représente aussi la distance entre le point et la droite
33/ Encore une fois, souvenez vous de vos cours de maths au lycée, sur le produit scalaire entre deux vecteurs
34/ La, on l'a fait dans le cas d'un modèle à deux paramètres
mais c'est tout à fait généralisable à 10, 100, 300 ... paramètres
A la place d'une droite qui sépare les 2 populations, on parlera d'hyperplan
35/ Donc en synthèse, quand vous verrez une régression logistique, souvenez vous que :
36/ Les valeurs des coefficients du modèle wi déterminent l'équation de la droite (hyperplan) qui sépare le mieux les deux classes
w1.x + w2.y + w0 = 0
37/ Les valeurs des coefficients du modèle déterminent également le vecteur normal à cette droite
Coordonnées du vecteur normal : (w1, w2)
38/ Et l'évaluation w0 + w1.x1 + ... + wn.xn correspond à la distance entre le point et cette droite
C'est simplement un produit scalaire entre 2 vecteurs
Et suivant la valeur de cette distance, on sait dans quel camp se trouve le point, avec plus ou moins de certitude
39/ Cette interprétation géométrique de la régression logistique, je ne l'avais pas saisie tout de suite, quand je l'ai apprise
Je trouve qu'elle apporte beaucoup à la compréhension du mécanisme de régression logistique
J'espère qu'elle vous a plus autant qu'à moi !
40/ Dans un prochain tweet, on verra comment le modèle apprend ces paramètres (c'est à dire l'équation de la droite)
Merci pour votre lecture et à très vite !
• • •
Missing some Tweet in this thread? You can try to
force a refresh
1/ J'ai la quarantaine bien passée et j'ai une longue expérience dans l'IT.
Mon parcours en quelques mots : développeurs d'application d'Entreprises, chef de projet, DSI, puis ensuite une longue expérience de conseil en management ou j'ai aidé mes clients à gérer leurs projets.
2/ Dans cette expérience, pas trop de sujets concernant la Data Science.
Et puis voilà que dans ma boîte, il y a maintenant 5 ans, un petit pôle de data scientistes s'est créé.