La classification et le perceptron
Ce que ce chapitre apporte 6 points
- Formuler un problème de classification et dire ce qui le distingue d'une régression.
- Dérouler l'algorithme du perceptron et énoncer sa garantie, ainsi que sa limite.
- Montrer sur un exemple qu'aucune droite ne sépare deux classes disposées en damier.
- Écrire une régression logistique, dire pourquoi elle rend une probabilité, et pourquoi elle s'apprend avec la perte logarithmique plutôt qu'avec les moindres carrés.
- Régler le nombre de voisins et reconnaître ce qu'il contrôle.
- Construire un arbre de décision et lire la forme de sa frontière.
Une frontière, pas un écart
Étant donné des exemples décrits par des attributs et étiquetés par l'une de deux classes, une classification cherche une règle qui attribue une classe à tout nouveau cas.
Géométriquement, cette règle découpe l'espace des attributs en régions, une par classe. La frontière de décision est la limite entre ces régions.
Regarder la région, pas la formule. Deux classifieurs peuvent se tromper sur le même nombre d'exemples et se comporter de façon entièrement différente ailleurs. Ce qui les distingue n'est pas leur score, c'est la forme de la région qu'ils colorient.
Une droite découpe le plan en deux demi-plans, et rien d'autre ne lui est possible. Un vote de voisins produit un contour qui épouse les données. Un arbre ne sait tracer que des frontières parallèles aux axes, donc des rectangles.
Ces formes sont des hypothèses sur le problème, faites avant d'avoir vu la moindre donnée. Les figures de ce chapitre montrent la région entière plutôt que la seule frontière, parce que c'est là que se lit l'hypothèse.
Dans la figure ci-dessous, le fond montre la classe prédite en chaque point du plan. Les points A sont des parcelles saines, les points B des parcelles que la rouille a touchées. Les trois curseurs font pivoter et glisser la droite ; onze parcelles sont mal rangées au départ.
11 points mal classés sur 28. Faire pivoter et glisser la droite change ce nombre, mais une droite reste une droite.
Le perceptron
Partir de poids nuls. Parcourir les exemples ; à chaque fois qu'un exemple est mal classé, ajouter son vecteur d'attributs aux poids, avec le signe de sa classe :
Recommencer tant qu'il reste des erreurs.
La garantie, et exactement ce qu'elle ne dit pas.
Le théorème de convergence du perceptron affirme que si les deux classes sont séparables par une droite, l'algorithme s'arrête après un nombre fini de corrections, et le nombre de corrections est borné par où est le rayon du nuage et la marge de la meilleure droite.
C'est une garantie forte, et elle est entièrement conditionnelle. Si les classes ne sont pas séparables, le théorème ne dit rien du tout, et l'algorithme ne s'arrête pas : il corrige indéfiniment, en changeant de droite à chaque passage.
Rien dans le code ne signale cette situation. Une boucle sans limite tournerait pour toujours, et une boucle avec limite rend une droite quelconque parmi celles qu'elle a traversées. C'est pourquoi toute implémentation borne le nombre de passages, et c'est aussi pourquoi le perceptron a été abandonné au profit de méthodes qui minimisent une erreur plutôt que de compter des fautes.
1.La coopérative veut prévoir le rendement de chaque parcelle, en quintaux par hectare. De quoi s'agit-il ?
2.Le perceptron ne s'arrête pas après des milliers de passages. Cela signifie…
Ce qu'une droite ne peut pas faire
18 points mal classés sur 28. Faire pivoter et glisser la droite change ce nombre, mais une droite reste une droite.
Le meilleur qu'une droite puisse faire est d'isoler un coin sur quatre, donc de se tromper sur un quart des points. Le balayage de la grille entière des curseurs le confirme : sept erreurs sur vingt-huit, jamais moins.
C'est la fonction « ou exclusif », et Minsky et Papert en firent en 1969 l'argument décisif contre le perceptron. Le domaine s'en est largement détourné pendant une quinzaine d'années.
Deux issues existent, et ce sont les deux mêmes que partout ailleurs. Changer d'espace : en ajoutant l'attribut , le damier devient séparable par un plan. Ou empiler les couches : deux droites suivies d'une combinaison suffisent, et c'est le sujet du chapitre 10.
Combien d'erreurs, au minimum, une droite commet-elle sur un damier équilibré ?
Une probabilité plutôt qu'un côté
Calculer un score , puis le convertir en probabilité par la fonction logistique
qui envoie tout réel dans , vaut en , et croît d'autant plus vite que est proche de zéro.
La frontière de décision reste une droite, celle où . Ce qui change est que le modèle annonce désormais à quel point il est sûr.
Le gradient est celui du chapitre 5, au mot près. Pour la régression, le gradient de l'erreur valait , soit la matrice des attributs multipliée par le vecteur des écarts.
Cette écriture n'est pas un raccourci de notation : le produit d'une matrice par un vecteur, la transposition et ce qu'elles calculent réellement sont posés dans le chapitre sur les matrices et les systèmes linéaires.
Pour la régression logistique, le gradient de la perte logarithmique vaut : la même chose, avec la probabilité à la place de la prévision.
Cette coïncidence n'en est pas une. Elle vient de ce que la fonction logistique et la perte logarithmique sont faites l'une pour l'autre, et c'est précisément ce qui rend cette perte préférable à toute autre.
La différence est qu'ici aucune formule fermée n'existe. Il faut descendre, ce qui est exactement la situation annoncée au chapitre 6.
Quand le modèle attribue une probabilité de 0,001 à un exemple qui est en réalité de classe 1, il se trompe autant qu'il est possible. La perte logarithmique produit alors une poussée de 0,999, la plus forte possible : le modèle est violemment corrigé.
La perte carrée produit une poussée de 0,002. Elle s'est évanouie, parce que la dérivée de la sigmoïde s'annule aux extrémités et vient multiplier le terme d'erreur. Le modèle reste bloqué dans sa certitude fausse.
Il y a une seconde raison, plus technique et tout aussi décisive : la perte logarithmique composée avec la sigmoïde est convexe en les poids, donc sans minimum local, alors que la perte carrée ne l'est pas.
Pourquoi la perte logarithmique plutôt que la perte carrée sur une probabilité ?
Les plus proches voisins
Aucune phase d'apprentissage : les exemples sont simplement conservés.
Pour classer un nouveau cas, chercher les exemples les plus proches et prendre la classe majoritaire parmi eux.
Avec un seul voisin, chaque point est son propre voisin le plus proche : aucune erreur d'apprentissage, par construction. Le contour épouse le moindre relevé, y compris ceux qui sont faux.
À k = 1, chaque exemple est son propre voisin le plus proche. L'erreur d'apprentissage vaut donc zéro par construction, sans que cela signifie quoi que ce soit. Le contour se plie autour de chaque relevé, y compris autour des quatre qui sont faux, et l'erreur de test vaut 4 sur 32.
À k = 3, les îlots ont disparu. L'erreur d'apprentissage remonte à 4, et il se trouve que ces quatre exemples mal classés sont exactement les quatre relevés faux. Le modèle a cessé de les croire. L'erreur de test tombe à 1 sur 32.
C'est le même mécanisme que le degré du polynôme au chapitre précédent, et il conduit à la même conclusion : une erreur d'apprentissage nulle est un symptôme, pas un résultat.
Le coût. Il n'y a pas d'apprentissage, mais chaque prédiction exige de parcourir tout le jeu de données. Le coût est reporté sur l'usage, et il grandit avec le nombre d'exemples conservés.
La dimension. Quand les attributs se comptent par dizaines, tous les points deviennent à peu près équidistants les uns des autres et la notion de voisinage perd son sens. La méthode brille en petite dimension et s'effondre en grande.
1.Avec k = 1, l'erreur d'apprentissage des plus proches voisins vaut…
2.Quel modèle du chapitre se dispense de mise à l'échelle ?
3.Quelle forme a nécessairement la frontière d'un arbre de décision ?
Les arbres de décision
Chercher la coupe qui sépare le mieux les classes, sous la forme « attribut inférieur ou égal à un seuil ». Recommencer séparément de chaque côté, jusqu'à ce qu'un groupe soit pur ou qu'une limite soit atteinte.
La qualité d'une coupe se mesure par l'impureté de Gini, pour deux classes, qui vaut zéro quand un groupe est pur et un demi quand il est parfaitement mélangé. On retient la coupe qui minimise la moyenne pondérée des impuretés des deux côtés.
Chaque coupe de l'arbre découpe un rectangle de plus dans le plan. Il y en a 2 ici, pour 3 régions.
Pourquoi les deux moitiés doivent se regarder ensemble. Une coupe de l'arbre à gauche est un trait dans le plan à droite, et rien d'autre. Voir les deux bouger en même temps rend évidente la propriété qu'on énonce partout sans jamais la montrer : un arbre ne compare qu'un attribut à un seuil, donc ses frontières sont parallèles aux axes, toujours.
Le compteur de feuilles dit combien de régions ont été créées, et l'arbre s'arrête parfois de lui-même avant la profondeur demandée : quand aucune coupe ne fait plus baisser l'impureté, ou quand les deux côtés rendraient la même classe, il ne sert à rien de creuser.
Pousser le curseur jusqu'au bout montre enfin à quoi ressemble une erreur d'apprentissage nulle : des lamelles absurdes, tracées autour de quatre relevés faux.
Le même U, pour la troisième fois. L'erreur d'apprentissage descend de 5 à 0 quand la profondeur passe de 1 à 10, sans jamais remonter. L'erreur de test passe par un creux à zéro en profondeur 2, puis remonte à 3.
C'est exactement la forme rencontrée avec le degré du polynôme et avec le nombre de voisins. Trois modèles sans rapport, un seul phénomène : au-delà d'un certain point, la souplesse supplémentaire ne sert plus qu'à apprendre le bruit.
Ce qui change d'un modèle à l'autre est seulement le nom du réglage qui contrôle la souplesse : le degré, le nombre de voisins, la profondeur. Chercher ce réglage est la première chose à faire devant un modèle inconnu.
Ils ne demandent pas de mise à l'échelle, puisqu'ils comparent chaque attribut à un seuil, sans jamais mélanger deux attributs dans un même calcul. C'est le seul modèle du chapitre à s'en dispenser.
Ils traitent les variables qualitatives directement, sans indicatrices.
En regard, ils sont instables : déplacer un seul exemple peut changer la première coupe et donc tout l'arbre. Et leurs frontières sont des escaliers, ce qui approche mal une séparation oblique. Ces deux défauts se corrigent en moyennant des centaines d'arbres, ce qui donne les forêts aléatoires et le gradient boosting, méthodes qui dominent aujourd'hui les données en tableau. Le prix payé est la lisibilité, qui disparaît entièrement.
Quatre frontières sur les mêmes points
Leurs frontières n'ont rien à voir. L'une est une droite, et le restera quelles que soient les données. L'autre est un contour organique qui suit les exemples. La troisième est faite de rectangles, parce qu'un arbre ne compare jamais qu'un attribut à un seuil.
L'arbre de profondeur 10, lui, atteint zéro erreur en découpant de fines lamelles autour de chaque relevé faux. C'est visuellement absurde, et c'est exactement ce que produit une erreur d'apprentissage nulle.
Le choix entre ces modèles ne se fait donc pas sur le score. Il se fait sur la forme qu'on croit raisonnable pour le problème, sur le besoin d'expliquer la décision, et sur le coût à l'usage.
Ce que ferait scikit-learn. Les quatre modèles du chapitre tiennent en quelques appels de la bibliothèque de référence.
from sklearn.linear_model import LogisticRegression, Perceptron
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier, export_text
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
m = make_pipeline(StandardScaler(), LogisticRegression()).fit(X, y)
v = make_pipeline(StandardScaler(), KNeighborsClassifier(n_neighbors=5)).fit(X, y)
a = DecisionTreeClassifier(max_depth=3).fit(X, y) # pas de mise a l'echelle ici
print(export_text(a, feature_names=["temperature", "charge"]))
print(m.predict_proba(X)[:5])
Deux détails valent d'être notés. LogisticRegression applique par défaut une pénalité sur les coefficients, comme au chapitre 7 : ce n'est donc pas exactement le modèle écrit plus haut. Et predict_proba rend la probabilité, alors que predict rend déjà la classe en tranchant à 0,5 ; le chapitre suivant montre pourquoi ce seuil ne doit presque jamais rester à 0,5.
Mettre en pratique
La régression logistique rend une probabilité parce qu'elle passe un nombre réel dans la fonction sigmoïde. Calculer cette fonction en trois points suffit à voir ce qu'elle fait.
De la combinaison linéaire à la probabilité
- 1.
La fonction sigmoïde vaut . Que vaut-elle en zéro ?
- 2.
Que vaut-elle en 2 ?
- 3.
Que vaut-elle en moins 1 ?
- 4.
Un modèle a pour poids 2 et 3, et pour biais moins 4. Que vaut son score sur un individu de coordonnées 1 et 1 ?
- 5.
Combien de droites séparent les quatre points d'un damier, deux points d'une classe en diagonale et deux de l'autre ?
La dernière réponse est la raison d'être de tout le chapitre suivant. Un modèle linéaire trace une droite, et une droite ne sépare pas un damier. Le remède n'est pas un meilleur apprentissage, c'est un modèle capable de courber sa frontière.
Le modèle de la coopérative donne la probabilité que la rouille touche une parcelle. Lesquelles des trois parcelles ci-dessous traiter, si l'on traite au-delà d'une chance sur deux ?
La régression logistique ajustée sur les relevés calcule, pour une parcelle, le score , où est l'humectation du feuillage en heures par jour et la densité de semis en grains par mètre carré. La probabilité d'être touchée est la sigmoïde de ce score.
| Parcelle | Humectation (h/jour) | Densité (grains/m²) |
|---|---|---|
| P1 | 3 | 250 |
| P2 | 5 | 300 |
| P3 | 6 | 350 |
Par où commencer ? Calculer le score de chaque parcelle avant toute probabilité : son signe dit déjà de quel côté de la frontière elle tombe.
Pourquoi aller jusqu'à la probabilité, si le signe du score suffit à trancher ?
Le corrigé
- Calculer les scores. P1 : . P2 : . P3 : .
- Passer à la probabilité. pour P1, pour P2, pour P3.
- Appliquer le seuil. Traiter P2 et P3, dont la probabilité dépasse 0,5 ; laisser P1, à une chance sur quatre.
- Vérifier par la frontière. Le score s'annule là où ; à 300 grains/m², c'est à heures. P2, à 5 heures, est bien du côté des parcelles touchées, et sa probabilité de 0,73 dit qu'elle n'en est pas loin, quand P3, à 0,91, l'est presque sûrement.
Trois modèles obtiennent le même nombre d'erreurs. Comment choisir ?
Par où commencer ? Écarter le score, qui ne les distingue pas, et regarder ce que chacun suppose sur la forme de la frontière.
Le corrigé
- Comparer les formes de frontière. Une droite suppose que les classes se séparent linéairement ; un arbre, que les découpages utiles sont parallèles aux axes ; les voisins, que des cas proches ont le même sort. Laquelle de ces hypothèses est raisonnable pour le problème ?
- Peser le besoin d'expliquer. Un arbre de profondeur 3 s'énonce en quatre phrases. Aucun autre modèle du chapitre ne s'explique aussi simplement, et il y a des contextes où cela décide seul.
- Peser le coût à l'usage. Les voisins n'apprennent rien mais parcourent tout le jeu à chaque prédiction. Les autres apprennent une fois et prédisent instantanément.
- Vérifier la stabilité. Retirer quelques exemples et réapprendre : un arbre peut changer entièrement, une régression logistique bouge à peine. À score égal, le modèle stable est le plus sûr.
Un centre de don du sang estime la probabilité qu'un donneur revienne de lui-même. Lesquels des trois donneurs ci-dessous relancer, si l'on relance sous une chance sur deux ?
La régression logistique du centre calcule le score , où est le nombre de dons passés et le nombre de mois depuis le dernier. La probabilité de revenir est la sigmoïde de ce score.
| Donneur | Dons passés | Mois depuis le dernier |
|---|---|---|
| D1 | 1 | 10 |
| D2 | 4 | 3 |
| D3 | 6 | 2 |
Par où commencer ? Calculer le score de chaque donneur avant toute probabilité.
Le corrigé
- Calculer les scores. D1 : . D2 : . D3 : .
- Passer à la probabilité. Environ 0,08 pour D1, 0,43 pour D2 et 0,69 pour D3.
- Appliquer le seuil. Relancer D1 et D2, sous 0,5 ; laisser D3 revenir de lui-même.
- Vérifier par la frontière. À trois mois du dernier don, le score s'annule pour dons. D2, à 4 dons, est juste en deçà : sa probabilité de 0,43 dit qu'il hésite, quand D1, à 0,08, ne reviendra presque sûrement pas sans relance. Comme dans le cas précédent, le seuil tranche, et la probabilité dit avec quelle assurance.
Chapitre révisé en novembre 2026 · Une erreur dans ce chapitre ?
Dans la bibliothèque d'exercices
De quel côté de la frontière, la probabilité logistique, et le k qui change la réponse.
- De quel côté de la frontièreNiveau 1
- Une probabilité plutôt qu'un côtéNiveau 1
- Quand k change la réponseNiveau 2
- Un perceptron qui ne s'arrête pasNiveau 2
- Cent pour cent à un seul voisinNiveau 2
- Des masses qui écrasent les duréesNiveau 3