~/teaching · machine learning · séance 5, mardi 15 décembre 2026
L'astuce du noyau, les SVM, le ridge à noyau et les arbres de décision, avec des exemples calculés
Deux familles de modèles qui ne ressemblent en rien à la régression logistique : des ressemblances entre points, et des questions emboîtées.
Résumé
Cette page résume la séance 5 du cours de Machine Learning de Centrale Méditerranée (option DDEFI, 2026-2027). Après un premier bloc sur les modèles linéaires et logistiques, elle aborde deux familles qui fonctionnent autrement : les méthodes à noyau, qui prédisent par un vote pondéré des ressemblances avec les points d'apprentissage, et les arbres de décision, qui découpent l'espace en boîtes une question à la fois.
La partie noyaux part du classifieur à marge maximale, passe par son dual, montre pourquoi seuls les vecteurs de support comptent, remplace le produit scalaire par un noyau polynomial ou gaussien et transforme le ridge en ridge à noyau. La partie arbres construit CART : Gini et entropie, gain d'une coupe, profondeur, élagage, instabilité et biais de l'importance par impureté. Chaque étape est vérifiée sur des nombres assez petits pour être refaits au crayon.
Plan du deck
- Marge maximale. La droite séparatrice la plus éloignée des points les plus proches, écrite comme un problème convexe.
- Marge souple et prix C. Variables d'écart et perte charnière, pour des données qu'aucune droite ne sépare.
- Le dual et les vecteurs de support. Multiplicateurs de Lagrange, conditions KKT et un exemple à quatre points fait à la main.
- L'astuce du noyau. Noyaux polynomial et RBF, et la condition de Mercer sur les noyaux valides.
- Ridge à noyau et pratique. La forme fermée, un exemple à trois points, et , la standardisation, le coût en et un court TP.
- Arbres de décision et impureté. La recherche gloutonne de CART, Gini et entropie, deux coupes candidates sur dix clients.
- Profondeur, élagage et importance. Le sur-apprentissage avec la profondeur, l'élagage coût-complexité, l'instabilité et le biais de la MDI.
Le classifieur à marge maximale
Parmi toutes les droites qui séparent deux classes sans erreur, le SVM garde celle qui reste le plus loin possible des points les plus proches de chaque côté.
Quand deux classes sont séparables par une droite, une infinité de droites le font avec zéro erreur d'apprentissage. La régression logistique en choisit une par la vraisemblance. La machine à vecteurs de support (support vector machine, SVM) pose plutôt une question géométrique : quelle frontière laisse la bande vide la plus large entre les classes ? Un nouveau client ressemble à un client connu, à un peu de bruit près ; une frontière qui frôle un point d'apprentissage classe mal ses voisins bruités.
On code les classes et on écrit . Multiplier et ensemble ne change pas la frontière : on pose donc aux points les plus proches. Un point étant à distance de l'hyperplan, la bande mesure , et l'élargir revient à réduire . C'est le principe de la marge maximale (maximum margin), un problème quadratique convexe au minimum unique (Cortes et Vapnik, 1995) :
| Client | Position | Classe | Avance | Rôle |
|---|---|---|---|---|
| 1 | (0, 0) | sain, | 5/3 | hors de la bande |
| 2 | (1, 0) | sain, | 1 | sur le bord |
| 3 | (0, 1) | sain, | 1 | sur le bord |
| 4 | (2, 2) | défaut, | 1 | sur le bord |
| 5 | (3, 2) | défaut, | 5/3 | hors de la bande |
| 6 | (2, 3) | défaut, | 5/3 | hors de la bande |
La solution, que SVC de scikit-learn retrouve avec un noyau linéaire et un très grand, a pour norme : la bande mesure , soit exactement l'écart entre les deux droites pointillées, mesuré le long de la normale . Trois clients touchent la bande : ce sont les vecteurs de support (support vectors). Les trois autres pourraient bouger, ou disparaître, sans que la frontière change.
Marge souple, perte charnière et prix C
Les données réelles ne sont jamais parfaitement séparables : le SVM laisse donc certains points entrer dans la bande et fait payer un prix fixe par unité d'empiètement.
Sur des données de crédit, aucune droite ne sépare les défauts des clients sains. Cortes et Vapnik (1995) introduisent la marge souple (soft margin) : chaque point reçoit une variable d'écart (slack variable) , la quantité dont il viole la marge, et l'objectif gagne un terme . À l'optimum, chaque écart vaut , si bien qu'on peut supprimer les contraintes :
Le terme de la somme est la perte charnière (hinge loss) : nulle pour un point du bon côté avec une avance d'au moins 1, puis linéaire quand le point entre dans la bande ou franchit la frontière. Vu ainsi, le SVM à marge souple est une perte plus une pénalité sur , la même forme que le ridge, où joue le rôle de : un petit donne une marge large et une forte régularisation (risque de sous-apprentissage), un grand une marge étroite et un risque de sur-apprentissage, comme le C de LogisticRegression.
Le problème dual : seuls les vecteurs de support comptent
Réécrit avec un prix par contrainte, le SVM montre que les points loin de la frontière reçoivent un prix nul : les retirer ne change rien.
On associe un multiplicateur de Lagrange à chaque contrainte et on retranche les contraintes de l'objectif. Annuler le gradient en , puis la dérivée en , donne deux identités. En les réinjectant, et disparaissent et il reste un problème en seul :
Avec une marge souple, seule s'ajoute la borne . Les écarts complémentaires, l'une des conditions de Karush-Kuhn-Tucker (KKT), donnent : soit le prix est nul, soit la contrainte est saturée. Un point bien classé et hors de la bande a et disparaît de comme de toute prédiction. Cette parcimonie explique pourquoi SVC ne garde que ses points support_ pour prédire.
Exemple calculé : quatre clients sur une droite
- Données. Clients sains en et , défauts en et . Les deux points intérieurs sont les plus proches de l'autre classe.
- Supports sur le bord. Écrire en et en donne et . En additionnant, , donc , , et la frontière passe en .
- Points extérieurs. En et , l'avance vaut : la contrainte n'est pas saturée, donc leur prix est nul par les écarts complémentaires.
- Prix. La condition impose l'égalité des deux prix restants, notés . Alors , d'où .
- Vérification. La valeur primale égale la valeur duale , et la marge est la distance de à . Déplacer le point de à ne change rien ; déplacer le point en change tout.
L'astuce du noyau : noyaux polynomial et RBF
Le dual ne voit les données qu'à travers des ressemblances entre paires de points : remplacer le produit scalaire par une ressemblance plus riche courbe la frontière sans travail supplémentaire.
Regardons à nouveau le dual : l'apprentissage ne demande que le tableau des produits scalaires , la matrice de Gram (Gram matrix), et la prédiction que . Des points sur une droite, une classe aux deux bouts et l'autre au milieu, ne se séparent pas par un seul seuil ; après , une droite horizontale suffit. Une frontière courbe devient plate après une transformation , l'application de plongement (feature map). L'astuce du noyau (kernel trick) calcule directement à partir de et , sans construire (Boser, Guyon et Vapnik, 1992).
Pour le noyau polynomial de degré 2 en dimension 2, développer le carré et couper le terme croisé en fait apparaître le plongement caché :
Vérifions avec et . Côté noyau, deux produits, une somme et un carré : , donc . Côté plongement, et , dont le produit scalaire vaut . Le noyau général contient toutes les interactions jusqu'au degré , pour le prix d'un produit scalaire et d'une puissance.
Le noyau gaussien, ou noyau RBF (radial basis function), vaut 1 pour deux points identiques et s'efface avec la distance ; règle la portée de chaque point d'apprentissage. Pour deux points à distance au carré 5, il vaut avec et environ 0,082 avec . Développer l'exponentielle en série entière montre que son plongement a une infinité de coordonnées. Avec petit, la frontière est presque droite ; avec grand, elle dessine des îlots autour de points isolés.
Remarque (Quelles fonctions sont des noyaux ?). Une fonction symétrique est un produit scalaire dans un certain espace exactement quand toutes ses matrices de Gram sont semi-définies positives. (Mercer, 1909 ; Aronszajn, 1950). La distance échoue : sur deux points à distance , sa matrice de Gram a la valeur propre . Sommes et produits de noyaux restent des noyaux, et c'est ainsi qu'on en construit de nouveaux sans risque.
Le ridge à noyau, et les noyaux en pratique
Le ridge à noyau est la régression ridge réécrite avec un poids par point d'apprentissage, ce qui permet de remplacer le produit scalaire par un noyau tout en gardant une forme fermée.
Partons du ridge en forme fermée. L'identité montre que , avec un poids par point d'apprentissage. Les prédictions ne font plus intervenir que des produits scalaires , qu'un noyau remplace : c'est le ridge à noyau (kernel ridge regression), conséquence du théorème du représentant (Kimeldorf et Wahba, 1971) :
Contrairement au SVM, il n'y a pas de parcimonie : la perte est quadratique, donc en général tous les sont non nuls et tout le jeu d'apprentissage est conservé. En échange, l'ajustement est un seul système linéaire, résolu avec np.linalg.solve plutôt qu'en inversant la matrice ; avec un noyau linéaire, il doit retrouver le ridge à la précision machine. Dans scikit-learn, KernelRidge appelle alpha et n'ajuste pas de constante.
| Entrée | Cible | Poids | Prédiction |
|---|---|---|---|
| 0 | 0 | 8/59 ≈ 0,136 | |
| 1 | 1 | 34/59 ≈ 0,576 | |
| 2 | 0 | 8/59 ≈ 0,136 | |
| 0,5 (nouveau point) | ≈ 0,428 |
Les deux points de cible 0 reçoivent des poids négatifs : ils tirent l'ajustement vers le bas autour d'eux. En , la cible vaut 1, mais la pénalité ramène l'ajustement à 0,576.
| Valeur de | Exactitude en apprentissage | Exactitude en test | Lecture |
|---|---|---|---|
| 0,1 | 0,873 | 0,844 | presque une droite, sous-apprend |
| 1 | 0,920 | 0,898 | suit les croissants |
| 100 | 0,993 | 0,839 | îlots autour des points, sur-apprend |
Augmenter pousse dans le même sens qu'augmenter ; les deux se choisissent par validation croisée sur une grille en puissances de 10. Standardisez d'abord : un noyau RBF additionne des écarts au carré dans l'unité de chaque variable, si bien qu'un plafond de crédit en dizaines de milliers de dollars écrase un âge en années et que s'effondre sur l'identité. Le scaler se place dans le pipeline, ajusté sur les plis d'apprentissage.
Le prix de l'astuce est la matrice : 32 Mo en double précision pour 2 000 lignes, 2,6 Go pour les 18 000 lignes d'apprentissage du jeu de crédit, et une résolution en environ opérations. Pour grand, les variables de Fourier aléatoires (random Fourier features, Rahimi et Recht, 2007) construisent colonnes cosinus tirées au hasard dont les produits scalaires approchent le noyau RBF ; une régression logistique sur ces colonnes passe à l'échelle en et, contrairement à SVC ou KernelRidge, donne des probabilités.
Arbres de décision : la coupe qui purifie le plus
Un arbre de décision pose une suite de questions fermées, une variable à la fois, en choisissant chaque question pour que les groupes obtenus soient aussi homogènes que possible.
Un arbre de décision (decision tree) joue au jeu du portrait : le client a-t-il eu au moins deux mois de retard le mois dernier ? Puis une question sur le plafond de crédit, et ainsi de suite, jusqu'à une feuille qui prédit la part de défauts parmi les clients d'apprentissage qui y arrivent. CART (Breiman, Friedman, Olshen et Stone, 1984) fait pousser l'arbre de façon gloutonne depuis le haut : à chaque nœud, il essaie toutes les variables et tous les seuils (les milieux entre valeurs triées), garde la coupe qui fait le plus baisser l'impureté pondérée des enfants, puis recommence.
L'impureté de Gini (Gini impurity) mesure le mélange d'un nœud : tirez deux de ses clients au hasard, avec remise, elle donne la chance que leurs classes diffèrent ; à deux classes, elle vaut , nulle sur un nœud pur et au plus . L'entropie de Shannon , en bits, vient d'ID3 (1986) et de C4.5 (1993), de Quinlan ; sa baisse est le gain d'information (information gain). Les deux courbes ont la même forme et choisissent presque toujours la même coupe. scikit-learn utilise Gini par défaut.
| Nœud | Clients | Défauts | Gini | Entropie (bits) |
|---|---|---|---|---|
| Parent | 10 | 4 | 0,480 | 0,971 |
| A, en retard (gauche) | 4 | 3 | 0,375 | 0,811 |
| A, sans retard (droite) | 6 | 1 | 0,278 | 0,650 |
| B, chaque côté | 5 | 2 | 0,480 | 0,971 |
Exemple calculé : le gain de chaque coupe
- Parent. Quatre défauts sur dix, : .
- Enfants de A. Trois défauts sur quatre à gauche, ; un sur six à droite, .
- Moyenne pondérée. Selon les effectifs, , donc la coupe A gagne . Avec l'entropie, le gain vaut : A l'emporte selon les deux critères.
- Coupe B. Chaque côté compte deux défauts sur cinq, la proportion du parent : les deux enfants ont l'impureté du parent et le gain est nul. Une question qui reproduit le mélange du parent n'apprend rien, quelle que soit la variable.
- Vérification.
DecisionTreeClassifier(max_depth=1)choisitPAY_0au seuil 1,5, milieu entre 1 et 2, et affiche les trois mêmes impuretés.
Profondeur, élagage, instabilité et biais de la MDI
Livré à lui-même, un arbre pousse jusqu'à apprendre par cœur le jeu d'apprentissage : il faut l'arrêter ou l'élaguer, et lire avec méfiance ses scores d'importance intégrés.
Par défaut (max_depth=None), scikit-learn fait pousser l'arbre jusqu'à ce que chaque feuille soit pure. Une profondeur maximale, une taille minimale de feuille (min_samples_leaf) ou un gain minimal l'arrêtent plus tôt ; les petites feuilles donnent aussi des probabilités grossières.
La simulation du deck le montre : une variable binaire fixe la probabilité de défaut à 0,7 ou 0,3, deux autres sont du bruit, 1 000 lignes pour apprendre et 1 000 pour tester, donc aucun classifieur ne peut dépasser 0,70. Un arbre de profondeur 1 ou 2 atteint 0,683 en test ; un arbre sans limite obtient 1,000 en apprentissage avec 397 feuilles et 0,549 en test, à peine mieux qu'une pièce. C'est un pur cas de sur-apprentissage (overfitting).
Plutôt que d'arrêter tôt, CART fait pousser l'arbre complet puis l'élague : c'est l'élagage coût-complexité (cost-complexity pruning), où est l'erreur d'apprentissage, le nombre de feuilles et un prix par feuille, choisi par validation croisée (ccp_alpha dans scikit-learn). Les sous-arbres optimaux sont emboîtés : il suffit d'en tester une poignée.
| Feuilles conservées | Prix de feuille ccp_alpha | Exactitude en validation croisée |
|---|---|---|
| 397 | 0 | 0,595 |
| 144 | 0,001 | 0,603 |
| 6 | 0,002 | 0,689 |
| 2 | 0,005 | 0,727 |
Au prix le plus élevé, il reste deux feuilles : une seule coupe, sur la seule variable utile. Un arbre court se lit à voix haute comme une règle qu'un client peut contester, ce que le crédit réglementé apprécie. Il est aussi instable : réajustez un arbre de profondeur 3 après avoir retiré au hasard 5 % des lignes, et le deuxième niveau saute vers des variables de bruit et de nouveaux seuils. Le bagging de Breiman (1996) part de ce constat et mène aux forêts aléatoires et au boosting de la séance suivante.
Le feature_importances_ de scikit-learn est l'importance par impureté (mean decrease in impurity, MDI) : les gains des coupes sur chaque variable, pondérés par les effectifs, normalisés à 1. Elle est gratuite mais doublement biaisée. Elle se mesure sur le jeu d'apprentissage, donc les coupes qui ont appris du bruit comptent aussi ; et une variable continue offre des centaines de seuils là où une variable binaire n'en offre qu'un, donc bien plus de coupes chanceuses. Sur l'arbre sans limite de la simulation, la MDI met le bruit continu en tête (0,754) et la variable utile ensuite (0,206) ; l'importance par permutation sur des données tenues à l'écart rétablit l'ordre (Strobl et al., 2007).
À retenir
- Le SVM garde la frontière de marge la plus large, , en minimisant sous une contrainte par point ; la marge souple ajoute une perte charnière au prix .
- Dans le dual, et les points hors de la bande ont : seuls les vecteurs de support dessinent la frontière.
- Comme le dual ne voit les données qu'à travers des produits scalaires, tout noyau dont les matrices de Gram sont semi-définies positives peut les remplacer ; le du noyau RBF règle la portée de chaque point.
- Le ridge à noyau résout en un seul système linéaire mais garde tous les points d'apprentissage : standardiser d'abord, et approcher le noyau quand est grand.
- Un arbre choisit chaque coupe par la plus forte baisse d'impureté pondérée ; une coupe qui recopie les proportions du parent ne gagne rien.
- Un arbre sans limite apprend le bruit, un arbre court est lisible mais instable, et l'importance par impureté favorise les variables qui offrent beaucoup de seuils.
Glossaire
- machine à vecteurs de support (support vector machine, SVM)
- Classifieur qui garde la frontière de marge la plus large, assouplie par un prix sur les violations.
- vecteurs de support (support vectors)
- Les points d'apprentissage sur le bord de la marge ou à l'intérieur ; les seuls dont le poids dual est non nul.
- perte charnière (hinge loss)
- La perte , nulle pour un point du bon côté avec une avance d'au moins 1.
- astuce du noyau (kernel trick)
- Remplacer chaque produit scalaire par un noyau, produit scalaire dans un espace plus grand calculé sans le construire.
- matrice de Gram (Gram matrix)
- La matrice des valeurs du noyau sur toutes les paires, semi-définie positive pour un noyau valide.
- ridge à noyau (kernel ridge regression)
- Le ridge sous forme duale avec un noyau, un poids par point d'apprentissage.
- arbre de décision (decision tree)
- Modèle de questions de seuil emboîtées sur une variable à la fois ; chaque feuille est une boîte de l'espace des entrées.
- impureté de Gini (Gini impurity)
- La quantité , probabilité que deux points tirés dans un nœud soient de classes différentes.
- élagage coût-complexité (cost-complexity pruning)
- Faire pousser l'arbre complet, puis garder le sous-arbre qui minimise l'erreur d'apprentissage plus un prix par feuille.
- importance par impureté (mean decrease in impurity, MDI)
- L'importance intégrée d'un arbre, biaisée vers les variables qui offrent beaucoup de seuils.
Les autres fiches du cours
Un résumé public par deck, dans l'ordre du cours.
Précédent : Un modèle de référence défendableSuivant : Forêts, boosting, comparaison honnête
- IntroductionHivers de l'IA, emploi et méthode
- OutilsKaggle, GitHub, Python : les outils
- Séance 1Cadrage de projet et moindres carrés
- Séance 2Vraisemblance et régression logistique
- Séance 3Descente de gradient, ridge et lasso
- Séance 4Seuil de décision et ML reproductible
- DevoirUn modèle de référence défendable
- Séance 5Noyaux, SVM et arbres de décision
- Séance 6Forêts, boosting, comparaison honnête
- Séance 7SHAP, équité, ACP et partitionnement
- DevoirUn modèle champion documenté
- Séance 8Réseaux de neurones, dérive, prédiction conforme
- DevoirUn projet de machine learning livré
- Séance 9Soutenir un projet de machine learning
- RéférenceProjet de score de défaut de crédit
- RéférenceRendements boursiers : XGBoost et sentiment
- RéférenceLe code Python de chaque modèle
- RéférenceDeep learning, l'essentiel
- RéférenceDonnées ouvertes et projets par secteur
- RéférenceManuel de l'expert data et IA
- RéférenceData engineering, SRE et cloud
- RéférencePanorama des modèles de machine learning
À propos de ces fiches
Écrites par l'enseignant à partir des slides du deck, comme un résumé public : les idées clés, les formules et un exemple calculé. Les exercices, leurs corrigés, les contrôles et la notation restent dans le deck, pour les élèves du cours.
Révision : .