Aller au contenu
Kudos AI
Read in English
Apprentissage supervisé

La régression logistique et la classification

Pourquoi une droite ne peut pas modéliser une probabilité, comment la fonction logistique y remédie, et ce que signifient les coefficients en log-cotes, avec un pas de montée de gradient et un ajustement convergé calculés et vérifiés numériquement.

8 min de lectureKudos AI

Prérequis : La régression linéaire à partir des premiers principes, Le théorème de Bayes et la mise à jour des croyances

Une droite qui dépasse 1 et passe sous 0, la même partie linéaire repliée dans la courbe logistique, et la frontière lue directement sur les coefficients.

La régression linéaire à partir des premiers principes ajustait une réponse numérique. Beaucoup de problèmes posent au contraire une question catégorielle : cet élément appartient-il à la classe A ou à la classe B ? Ce que nous voulons d’ordinaire n’est pas l’étiquette mais la probabilité de l’étiquette, et les probabilités sont contraintes d’une manière dont les droites ne le sont pas.

A. Pourquoi ne pas simplement ajuster une droite ?

Codez les deux classes par 00 et 11 et lancez les moindres carrés. La droite ajustée est β^0+β^1X\hat\beta_0 + \hat\beta_1 X, définie pour tout XX réel, et elle finit donc par dépasser 11 et par tomber sous 00. Comme estimation de P(Y=1∣X)P(Y = 1 \mid X), ce n’est pas seulement inexact, c’est impossible - cela viole les axiomes de Les probabilités à partir de zéro.

Il nous faut un modèle dont la sortie est confinée à (0,1)(0, 1) par construction.

B. La fonction logistique

La régression logistique modélise directement la probabilité :

p(X)=P(Y=1∣X)=eβ0+β1X1+eβ0+β1X.p(X) = P(Y = 1 \mid X) = \frac{e^{\beta_0 + \beta_1 X}}{1 + e^{\beta_0 + \beta_1 X}} .

En posant z=β0+β1Xz = \beta_0 + \beta_1 X, c’est la fonction logistique (ou sigmoïde)

σ(z)=11+e−z,\sigma(z) = \frac{1}{1 + e^{-z}} ,

les deux formes étant algébriquement identiques (divisez numérateur et dénominateur de la première par eze^{z}). Son comportement est exactement ce dont nous avons besoin : quand z→+∞z \to +\infty, σ→1\sigma \to 1 ; quand z→−∞z \to -\infty, σ→0\sigma \to 0 ; et σ(0)=0.5\sigma(0) = 0.5. La sortie peut approcher les bornes sans jamais les atteindre.

Quelques valeurs, avec z=−4+xz = -4 + x :

xxzzσ(z)\sigma(z)
2−2-20.1192
4000.5000
6220.8808

C. Cotes et log-cotes : ce que signifient les coefficients

Réarranger le modèle donne les cotes :

p(X)1−p(X)=eβ0+β1X,\frac{p(X)}{1 - p(X)} = e^{\beta_0 + \beta_1 X} ,

et prendre le logarithme donne les log-cotes ou logit :

log⁡ ⁣(p(X)1−p(X))=β0+β1X.\log\!\left(\frac{p(X)}{1 - p(X)}\right) = \beta_0 + \beta_1 X .

C’est en ce sens que la régression logistique est un modèle linéaire - linéaire dans les log-cotes, non dans la probabilité. Les cotes vont de 00 à ∞\infty et les log-cotes couvrent toute la droite réelle, ce qui est précisément l’étendue dont une fonction linéaire a besoin.

ppcotes p/(1−p)p/(1-p)log-cotes
0.200.25−1.3863-1.3863
0.501.000.00000.0000
0.753.001.09861.0986
0.909.002.19722.1972

Ainsi β1\beta_1 est la variation des log-cotes par unité supplémentaire de XX, et eβ1e^{\beta_1} la variation multiplicative des cotes.

Le contresens le plus fréquent. β1\beta_1 n’est pas la variation de probabilité par unité de XX. Comme la courbe logistique est en S, le même pas d’une unité déplace beaucoup la probabilité près de p=0.5p = 0.5 et presque pas du tout dans les queues. Seules les log-cotes varient d’une quantité constante.

D. L’ajustement par maximum de vraisemblance

Les moindres carrés ne sont pas le critère naturel ici. Nous choisissons plutôt les coefficients qui rendent les étiquettes observées les plus probables. Chaque observation contribue p(xi)p(x_i) si yi=1y_i = 1 et 1−p(xi)1 - p(x_i) si yi=0y_i = 0, ce qui se combine en la vraisemblance

ℓ(β0,β1)=∏i: yi=1p(xi)∏i: yi=0(1−p(xi)).\ell(\beta_0, \beta_1) = \prod_{i:\,y_i=1} p(x_i) \prod_{i:\,y_i=0}\big(1 - p(x_i)\big) .

Le logarithme transforme le produit en somme - numériquement bien mieux conditionné - donnant la log-vraisemblance

log⁡ℓ=∑i=1n[yilog⁡p(xi)+(1−yi)log⁡(1−p(xi))].\log \ell = \sum_{i=1}^{n}\Big[y_i \log p(x_i) + (1-y_i)\log\big(1 - p(x_i)\big)\Big] .

Contrairement aux moindres carrés, elle n’a aucune solution en forme close ; on la maximise numériquement. Son gradient est remarquablement propre :

∂log⁡ℓ∂β0=∑i(yi−pi),∂log⁡ℓ∂β1=∑i(yi−pi) xi.\frac{\partial \log\ell}{\partial \beta_0} = \sum_i (y_i - p_i), \qquad \frac{\partial \log\ell}{\partial \beta_1} = \sum_i (y_i - p_i)\,x_i .

Chaque observation pousse les coefficients proportionnellement à l’erreur de la prédiction courante - un schéma qui réapparaît dans La rétropropagation et la descente de gradient.

E. Un pas de gradient, à la main

Six observations, délibérément non parfaitement séparables (la raison est en section G) :

xix_i123456
yiy_i010111

Partons de β0=β1=0\beta_0 = \beta_1 = 0. Alors zi=0z_i = 0 et pi=σ(0)=0.5p_i = \sigma(0) = 0.5 pour chaque observation, donc

log⁡ℓ=6log⁡(0.5)=−4.158883.\log\ell = 6\log(0.5) = -4.158883 .

Les composantes du gradient :

∑i(yi−pi)=(0−0.5)+(1−0.5)+(0−0.5)+(1−0.5)+(1−0.5)+(1−0.5)=1.0,\sum_i (y_i - p_i) = (0-0.5)+(1-0.5)+(0-0.5)+(1-0.5)+(1-0.5)+(1-0.5) = 1.0 , ∑i(yi−pi)xi=−0.5+1.0−1.5+2.0+2.5+3.0=6.5.\sum_i (y_i - p_i)x_i = -0.5 + 1.0 - 1.5 + 2.0 + 2.5 + 3.0 = 6.5 .

En faisant un pas de taille η=0.05\eta = 0.05 vers le haut (nous maximisons) :

β0←0+0.05(1.0)=0.05,β1←0+0.05(6.5)=0.325.\beta_0 \leftarrow 0 + 0.05(1.0) = 0.05, \qquad \beta_1 \leftarrow 0 + 0.05(6.5) = 0.325 .

Les nouvelles probabilités sont [0.5927,0.6682,0.7359,0.7941,0.8422,0.8808][0.5927, 0.6682, 0.7359, 0.7941, 0.8422, 0.8808] et la log-vraisemblance est montée à −3.162034-3.162034. Un pas a amélioré l’ajustement.

La taille du pas n’est pas un paramètre libre. Avec η=0.5\eta = 0.5, le même pas atterrit en β=(0.5,3.25)\beta = (0.5, 3.25) et la log-vraisemblance chute à −14.024-14.024 - bien pire que le point de départ. Il est facile de dépasser un maximum ; qu’un pas monte localement ne signifie pas que toute longueur de pas dans cette direction soit une amélioration.

En itérant jusqu’à convergence on obtient

β^0=−2.7700,β^1=1.1447,\hat\beta_0 = -2.7700, \qquad \hat\beta_1 = 1.1447,

avec une log-vraisemblance de −2.440125-2.440125.

Interpréter le résultat. Chaque unité supplémentaire de xx multiplie les cotes par e1.14466=3.1414e^{1.14466} = 3.1414 - les triplant à peu près. La frontière de décision, où p=0.5p = 0.5, est là où z=0z = 0 :

x=−β^0β^1=2.77001.14466=2.4199.x = -\frac{\hat\beta_0}{\hat\beta_1} = \frac{2.7700}{1.14466} = 2.4199 .

Sous x≈2.42x \approx 2.42 nous prédisons la classe 0, au-dessus la classe 1.

Interactif : linéaire en log-cote, courbe en probabilité

Le pas marqué vaut une unité de x, tracé sur les deux.

00.5
Multiplicateur de cote
3.141x
Frontière (p = 0,5)
2.4199
Le pas ajoute, en log-cote
1.1447
Le pas ajoute, en probabilité
0.2642

Le pas ajoute 1.1447 à la log-cote - la même quantité où qu’on le prenne, car cette droite est droite - et multiplie la cote par 3.141, partout également. Mais il déplace la probabilité de 0.2642, et c’est presque son maximum, car vous êtes près de la frontière où la courbe est la plus raide. Glissez vers une queue et regardez le même pas ne presque plus rien valoir.

Python

S'exécute dans votre navigateur. La première exécution télécharge l'environnement Python (~10 Mo), puis il est mis en cache.

Chaque nombre ci-dessus est reproduit par cette exécution.

F. De la probabilité à la décision

Le modèle produit une probabilité ; une décision exige un seuil. Le seuil par défaut 0.50.5 n’est correct que lorsque les deux types d’erreur coûtent la même chose. Quand un faux négatif coûte bien plus cher qu’un faux positif, le bon seuil est plus bas - et c’est une décision sur des conséquences, non une question statistique à laquelle les données peuvent répondre.

La leçon du taux de base tirée du théorème de Bayes s’applique ici pleinement : avec une classe positive rare, un modèle peut être très exact et se tromper malgré tout la plupart des fois où il prédit « positif ».

G. Quand l’ajustement explose

Si les classes sont parfaitement séparables - un seuil les sépare sans recouvrement - la vraisemblance peut toujours être augmentée en agrandissant β1\beta_1, ce qui pousse les probabilités ajustées vers exactement 00 et 11. Il n’y a pas de maximum, et l’EMV n’existe pas.

Ce n’est pas hypothétique. En remplaçant nos données par les données proprement séparées x=(1,2,3,4)x = (1,2,3,4), y=(0,0,1,1)y = (0,0,1,1), un solveur non régularisé renvoie β^1≈18.2\hat\beta_1 \approx 18.2 avec β^0≈−45.8\hat\beta_0 \approx -45.8 - des nombres qui sont des artefacts de l’endroit où l’optimiseur s’est arrêté, non des estimations. Le logiciel peut vous avertir ou non. Le remède standard est une pénalité sur la taille des coefficients, ce qui est exactement le sujet de l’article suivant.

À retenir

  • Un modèle linéaire d’une probabilité produit des valeurs hors de [0,1][0,1] ; la fonction logistique confine la sortie à (0,1)(0,1) par construction.
  • La régression logistique est linéaire dans les log-cotes : β1\beta_1 est la variation des log-cotes par unité de XX, et eβ1e^{\beta_1} le multiplicateur des cotes - non une variation de probabilité.
  • L’ajustement maximise la log-vraisemblance, sans forme close, résolue numériquement ; le gradient vaut ∑(yi−pi)\sum(y_i - p_i) et ∑(yi−pi)xi\sum(y_i - p_i)x_i.
  • Notre ajustement a convergé vers β^0=−2.7700\hat\beta_0 = -2.7700, β^1=1.1447\hat\beta_1 = 1.1447 : cotes ×3.14\times 3.14 par unité, frontière en x=2.4199x = 2.4199.
  • La taille du pas compte - η=0.05\eta = 0.05 a amélioré l’ajustement, η=0.5\eta = 0.5 l’a bien empiré.
  • Sous séparation parfaite, l’EMV n’existe pas et les coefficients divergent.

La suite

Les deux modes de défaillance que nous venons de voir - des coefficients qui s’emballent sous séparation, et des modèles souples qui poursuivent le bruit - se traitent par la même idée : ajouter une pénalité qui rende les grands coefficients coûteux. C’est La régularisation : ridge et lasso.

Références et lectures complémentaires

  • Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani, An Introduction to Statistical Learning, with Applications in R, Springer (Springer Texts in Statistics 103), 2013source ↗

Les œuvres protégées par le droit d’auteur sont citées à titre de référence uniquement et ne sont pas hébergées ici ; veuillez consulter l’éditeur pour y accéder.

Lecture associée

11 min de lectureApprentissage supervisé

Comparer les classifieurs, et ce que l’exactitude dissimule

Le classifieur de Bayes que rien ne peut battre et le plancher d’erreur qu’il laisse, les k plus proches voisins comme imitation non paramétrique avec k pour bouton de flexibilité, l’analyse discriminante et pourquoi une covariance partagée impose une droite, et la matrice de confusion, les seuils et la courbe ROC qu’un unique chiffre d’exactitude dissimule - chaque nombre calculé sur des données simulées où l’optimum est connu.

Apprentissage automatiqueStatistique
7 min de lectureMachines à vecteurs de support

Machines à vecteurs de support : marges et noyaux

Pourquoi la bande la plus large entre deux classes est une bonne frontière, pourquoi en exiger une parfaite est contre-productif, comment un budget de violations rachète de la stabilité, et comment un noyau courbe la frontière en travaillant dans un espace qu’il n’a jamais à construire.

Apprentissage automatiqueOptimisation
7 min de lectureApprentissage supervisé

La régression linéaire à partir des premiers principes

Dériver les coefficients des moindres carrés en différenciant la somme des carrés des résidus, puis mener à la main un ajustement complet sur cinq observations : coefficients, valeurs ajustées, résidus, RSS et R², chacun vérifié numériquement.

StatistiqueApprentissage automatiqueMathématiques
← Retour à tous les articles