Aller au contenu
Kudos AI

Le classifieur de Bayes et les plus proches voisins

La règle qui minimise l’erreur de test, le plancher qu’elle laisse derrière elle, et la méthode non paramétrique qui l’imite en comptant des voisins - le nombre de voisins se révélant être le bouton de flexibilité déguisé.

IntermédiaireModule 125 min · 100 XP
Deux densités gaussiennes se croisant à la frontière de Bayes, le recouvrement ombré comme plancher d’erreur, la frontière glissant à mesure que changent les a priori, et une frontière KNN passant de déchiquetée à plate quand k dépasse sa meilleure valeur.

La régression logistique a donné une façon de tracer une frontière. Avant de la comparer à d’autres, il vaut la peine de savoir à quoi ressemble la meilleure frontière possible - parce qu’il en existe une, qu’elle est imbattable, et que toutes les méthodes de ce parcours sont autant de tentatives de la deviner.

Le classifieur qu’on ne peut pas battre

Supposons que vous connaissiez, pour chaque point xx, la vraie probabilité conditionnelle de chaque classe, P(Y=j∣X=x)P(Y = j \mid X = x). Le classifieur de Bayes affecte xx à la classe dont cette probabilité est la plus grande.

Cette règle minimise le taux d’erreur, et l’argument est presque trop court pour mériter le nom de preuve. En chaque xx pris isolément, la probabilité de se tromper vaut 1−max⁡jP(Y=j∣X=x)1 - \max_j P(Y = j \mid X = x), et aucune autre règle ne peut la rendre plus petite en ce point. Une règle optimale en chaque point est optimale en moyenne. L’erreur qui en résulte,

1−E[max⁡jP(Y=j∣X)],1 - E\left[\max_j P(Y = j \mid X)\right],

est le taux d’erreur de Bayes : l’analogue en classification de l’erreur irréductible. Il n’est pas nul, parce que les classes se recouvrent véritablement dans la population.

Remarquez ce que la règle exige. Il lui faut P(Y∣X)P(Y \mid X) - précisément la quantité que toute méthode réelle cherche à estimer. Le classifieur de Bayes est donc une référence qu’on ne peut évaluer qu’en simulation, sur des données qu’on a soi-même construites. Ce n’est pas une raison de l’ignorer ; c’est la raison pour laquelle les simulations valent d’être menées.

Le calcul sur la droite

Prenons deux classes sur la droite réelle. La classe 1 est N(−1,25,1)N(-1{,}25, 1), la classe 2 est N(1,25,1)N(1{,}25, 1), et elles sont également probables. Où est la frontière ?

Les lois a posteriori sont égales là où π1f1(x)=π2f2(x)\pi_1 f_1(x) = \pi_2 f_2(x). Avec des a priori égaux et des variances égales, les densités sont symétriques l’une de l’autre : la frontière est donc le milieu, x=0x = 0. Tout ce qui est à gauche de zéro est déclaré classe 1.

Le taux d’erreur suit immédiatement. Une observation de classe 2 est mal classée lorsqu’elle tombe sous zéro, ce qui arrive avec probabilité Φ(−1,25)=0,105650\Phi(-1{,}25) = 0{,}105650, et par symétrie il en va de même pour la classe 1. Le taux d’erreur de Bayes vaut donc

0,105650.0{,}105650 .

Environ une prédiction sur dix est fausse, et aucune méthode, si sophistiquée soit-elle, ne fera mieux sur ce problème. Intégrer numériquement le mélange sur quatre millions de points de la droite renvoie la même valeur à six décimales.

Interactif : la frontière que rien ne peut battre

Le recouvrement ombré est le plancher d’erreur.

classe 0classe 1x*
Erreur de Bayes (le plancher)
0.105650
Frontière x*
0.000000
Coût du point milieu
0.000000

À a priori égaux, la frontière est au point milieu et le plancher est le recouvrement des deux courbes. Rien ne passe dessous : les classes occupent véritablement le même terrain. Déplacez maintenant l’a priori. Élargissez σ et le plancher monte, car le plancher n’est rien d’autre que le recouvrement.

Ce que font les a priori

Rendons maintenant la classe 1 plus fréquente, avec π1=0,7\pi_1 = 0{,}7. La frontière résout π1f1(x)=π2f2(x)\pi_1 f_1(x) = \pi_2 f_2(x), et le passage au logarithme donne

x=σ2log⁡(π1/π2)+(μ22−μ12)/2μ2−μ1=+0,338919.x = \frac{\sigma^2 \log(\pi_1/\pi_2) + (\mu_2^2 - \mu_1^2)/2}{\mu_2 - \mu_1} = +0{,}338919 .

La frontière s’est déplacée vers la classe la plus rare, agrandissant la région de la classe 1. C’est le bon sens, et il vaut la peine de s’y arrêter, car le contraire est une supposition naturelle : puisque la classe 1 est plus fréquente, sa région ne devrait-elle pas rétrécir pour ne pas noyer la classe 2 ? Non - un point proche de zéro a désormais plus de chances de venir de la classe 1, simplement parce qu’il y a davantage de points de classe 1 dont il peut venir, et la règle optimale suit la loi a posteriori, non la densité.

Le gain est mesurable. À la frontière déplacée, le taux d’erreur vaut 0,0935650{,}093565 ; garder la frontière à zéro en ignorant l’a priori donne 0,1056500{,}105650, l’erreur coûte donc 0,0120840{,}012084. À π1=0,9\pi_1 = 0{,}9 la frontière atteint +0,878890+0{,}878890 et l’erreur tombe à 0,0504960{,}050496, tandis que la frontière à zéro donne toujours 0,1056500{,}105650 - à ce stade, ignorer l’a priori fait plus que doubler l’erreur.

Vérifiée contre une grille de 240 001 seuils candidats, la frontière dérivée est bien la meilleure disponible. C’est une petite chose à contrôler, et elle attrape les erreurs de signe, faciles à commettre ici et invisibles ensuite.

Imiter le classifieur de Bayes en comptant

Les données réelles n’arrivent pas avec P(Y∣X)P(Y \mid X). Les k plus proches voisins l’estiment de la façon la plus directe qui soit : regarder les kk points d’entraînement les plus proches de x0x_0, et utiliser les proportions parmi eux.

P(Y=j∣X=x0)=1k∑i∈N0I(yi=j)P(Y = j \mid X = x_0) = \frac{1}{k} \sum_{i \in \mathcal{N}_0} I(y_i = j)

Puis appliquer la règle de Bayes à cette estimation. Rien n’est ajusté à l’avance - le jeu d’entraînement est le modèle, ce qui rend l’entraînement instantané et la prédiction coûteuse.

k est le bouton de flexibilité

Prenons un problème bidimensionnel dont le taux d’erreur de Bayes, obtenu par intégration, vaut 0,0927080{,}092708. Ajustement sur 200 points d’entraînement, évaluation sur 20 000 points de test :

kk135915254575125199
erreur de test0,13820,11550,10300,09760,09720,09770,09770,10360,12310,5049

Lisez d’abord les deux extrémités. À k=1k = 1, chaque point d’entraînement est son propre plus proche voisin : l’erreur d’entraînement est donc exactement nulle - et l’erreur de test, 0,1382000{,}138200, est la pire du tableau hormis le k=199k = 199 dégénéré. Cette seule paire de nombres est la démonstration la plus nette que vous verrez du fait que l’erreur d’entraînement n’est pas une estimation de l’erreur de test.

À k=199k = 199 sur 200 points d’entraînement, presque tout l’échantillon vote à chaque prédiction. Le classifieur a cessé de dépendre de xx et renvoie simplement la classe majoritaire : son erreur, 0,5048500{,}504850, est donc essentiellement l’a priori de classe. Biais maximal, variance minimale, aucune information.

Entre les deux, la courbe est en U, avec un plancher peu marqué de k=9k = 9 à k=45k = 45 et une meilleure valeur de 0,0971500{,}097150 en k=15k = 15 - à moins d’un demi-point du plancher de Bayes, pour une méthode qui n’a rien supposé sur la forme de la frontière. Il n’existe pas de formule pour le meilleur kk ; on le choisit par validation croisée, et la platitude du plancher fait qu’il suffit en général d’être à peu près juste.

Ce que cela coûte

La méthode n’impose aucune forme à la frontière : elle peut donc suivre des courbes et des régions disjointes qu’aucun modèle linéaire n’exprime. En échange, elle n’a aucun moyen d’ignorer une variable non pertinente : chaque dimension entre dans la distance, si bien que la précision se dégrade à mesure qu’on ajoute des variables non informatives. En grande dimension, les « plus proches » voisins ne sont proches de x0x_0 en aucun sens utile, ce qui est un visage du fléau de la dimension.

Et comme la distance est euclidienne, une variable mesurée en grandes unités la domine. Standardiser n’est pas ici un raffinement ; c’est une condition pour que la méthode signifie quoi que ce soit.

Avant le quiz

Le classifieur de Bayes retient la classe la plus probable en chaque point et ne peut être battu ; ce qu’il laisse derrière lui est le taux d’erreur de Bayes, 0,1056500{,}105650 pour l’exemple unidimensionnel. Les a priori déplacent la frontière vers la classe la plus rare, et les ignorer coûte de façon mesurable. Les k plus proches voisins imitent la règle en comptant des voisins, kk étant le bouton de flexibilité : k=1k = 1 mémorise, k≈nk \approx n renvoie la classe majoritaire, et les valeurs utiles sont entre les deux.

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 ↗
  • Stuart Russell, Peter Norvig, Artificial Intelligence: A Modern Approach, Pearson (3rd edition), 2010· Bibliothèque de référence Kudos AI

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.

Débloquez tout le parcours

Cette première leçon est gratuite. Inscrivez-vous pour passer le quiz de maîtrise, gagner de l’XP et débloquer tous les modules, avec d’autres exemples interactifs et exécutables.