Accueil / Factory / Algos ML / SVM à noyau — factory / algos ML / apprentissage supervisé

SVM À NOYAU.

Quand une droite ne suffit pas à séparer deux classes, la SVM à noyau travaille comme si les données étaient projetées dans un espace plus riche, où une frontière simple existe. Elle excelle sur des jeux de taille moyenne aux frontières complexes, au prix de réglages délicats et de calculs lourds.

ClassificationAstuce du noyauFrontière non linéaireImagesNiveau : avancé

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceTrès forte sur des jeux moyens aux frontières complexes
InterprétabilitéUne frontière dans un espace invisible, rien à montrer au métier
VitesseEntraînement lent au-delà de quelques dizaines de milliers de lignes
Facilité de réglageC et gamma interagissent, recherche en grille obligatoire
Tolérance aux données brutesMise à l'échelle indispensable, pas de valeurs manquantes
EN 30 SECONDES

Des billes rouges au centre d'une table, des bleues autour. Impossible de les séparer d'un trait de règle. Soulevez la nappe au centre : un plan horizontal les sépare.

1. On mesure la ressemblance entre exemples

Le noyau est une fonction de similarité. Le noyau gaussien (RBF) donne une valeur proche de 1 pour deux images presque identiques, proche de 0 pour deux images très différentes.

2. On sépare dans l'espace enrichi

Grâce à l'astuce du noyau, la SVM trouve la frontière à marge maximale dans cet espace enrichi sans jamais calculer ses coordonnées, seulement des similarités.

3. On classe par comparaison aux vecteurs de support

Une nouvelle image est comparée aux exemples clés retenus, les vecteurs de support. Leur similarité pondérée décide de la classe.

LE CAS MÉTIER

lecture automatique · banque / assurance / logistique
EN ENTRÉE

Des chiffres manuscrits numérisés

Chaque chiffre est une petite image de 8 × 8 pixels, soit 64 niveaux de gris, avec le chiffre réel. Le cas type : la saisie automatique de montants ou de codes sur des formulaires papier.

EN SORTIE

Le chiffre lu, avec très peu d'erreurs

Sur le jeu d'exemple, la SVM à noyau lit correctement 99,1 % des chiffres mis de côté, contre 97,8 % pour la même SVM sans noyau. Le modèle retient 527 images de support sur 1 257.

CE QU'ON MESURE

Le taux d'erreur, et où il se concentre

Sur une chaîne de saisie, chaque erreur coûte une correction manuelle. On regarde l'exactitude globale, puis la matrice de confusion pour repérer les paires confondues, comme 8 et 1, et fixer un seuil de renvoi vers un opérateur.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Jeux de taille moyenne, jusqu'à quelques dizaines de milliers de lignes
  • Frontière entre classes clairement non linéaire
  • Beaucoup de variables numériques homogènes : pixels, mesures de capteurs, spectres
  • Besoin d'un bon modèle avec peu de données, là où le deep learning manque d'exemples

NON

  • Des centaines de milliers de lignes ou plus : entraînement trop long, préférer XGBoost ou un réseau de neurones
  • Décision à expliquer au métier : préférer un arbre ou une régression logistique
  • Données tabulaires hétérogènes avec manquants : une Random Forest demande moins de préparation
  • Images de grande taille : un réseau convolutif (CNN) est la bonne réponse
LES 3 RÉGLAGES QUI COMPTENT

Noms donnés pour R (e1071) et Python (scikit-learn). C et gamma se règlent ensemble, par recherche en grille.

kernel

Forme du noyau. "radial" / "rbf" est le choix par défaut et le plus polyvalent. Le noyau polynomial sert quand on soupçonne des interactions d'un degré donné.

cost / C

Tolérance aux erreurs d'entraînement. Grand C : frontière qui épouse les données, risque de surapprentissage. Petit C : frontière plus lisse.

gamma

Portée de chaque exemple. Grand gamma : chaque image n'influence que ses voisines immédiates, la frontière devient très découpée. Petit gamma : influence large, frontière douce. En Python, gamma="scale" part d'une valeur adaptée à l'échelle des données.

LE CODE MINIMAL

jeu d'exemple : chiffres_manuscrits.csv ↓
# Lecture de chiffres manuscrits : SVM à noyau en R
library(e1071)

chiffres <- read.csv("chiffres_manuscrits.csv")
X <- as.matrix(chiffres[, 1:64]) / 16   # pixels ramenés entre 0 et 1
y <- factor(chiffres$chiffre)

set.seed(42)
idx <- sample(nrow(X), round(0.7 * nrow(X)))

# Noyau gaussien : cost et gamma choisis par validation croisée (10 plis)
reglage <- tune(svm, train.x = X[idx, ], train.y = y[idx], kernel = "radial", scale = FALSE,
                ranges = list(cost = c(1, 10, 100), gamma = c(0.01, 0.05, 0.1)))
print(reglage$best.parameters)

modele <- reglage$best.model
pred <- predict(modele, X[-idx, ])
cat("Exactitude test :", round(mean(pred == y[-idx]), 3), "\n")
cat("Vecteurs de support :", modele$tot.nSV, "sur", length(idx), "images\n")

# Pour comparaison : la même SVM sans noyau (frontières droites)
lineaire <- svm(X[idx, ], y[idx], kernel = "linear", scale = FALSE)
cat("SVM linéaire, exactitude test :", round(mean(predict(lineaire, X[-idx, ]) == y[-idx]), 3), "\n")

QUESTIONS FRÉQUENTES

Qu'est-ce que l'astuce du noyau ?

C'est le fait de calculer des similarités entre exemples comme s'ils étaient projetés dans un espace de dimension beaucoup plus grande, sans jamais faire cette projection. La SVM n'a besoin que de ces similarités pour trouver sa frontière. Le calcul reste donc faisable même quand l'espace implicite est de dimension infinie, comme avec le noyau gaussien.

Comment choisir C et gamma ?

Par recherche en grille avec validation croisée, sur des échelles logarithmiques (0,01, 0,1, 1, 10…). Les deux paramètres interagissent : un gamma élevé demande en général un C plus faible. Les données doivent être mises à l'échelle avant la recherche.

SVM ou réseau de neurones ?

Sur quelques milliers d'exemples, une SVM à noyau bien réglée rivalise souvent avec un réseau de neurones et demande moins de travail. Sur des volumes importants ou des images de taille réelle, les réseaux de neurones l'emportent, car l'entraînement d'une SVM devient trop coûteux.

LES ALGOS VOISINS

à comparer avant de choisir
la version rapide

SVM linéaire

Même idée de marge avec une frontière droite. Bien plus rapide, suffisante sur le texte.

Voir la fiche →
l'autre méthode par similarité

k plus proches voisins

Classe par les exemples les plus ressemblants, sans rien apprendre. Simple, mais lent en prédiction.

Voir la fiche →
le standard pour les images

Réseaux convolutifs (CNN)

Apprennent eux-mêmes les motifs visuels. Indispensables sur des images de taille réelle.

Voir la fiche →
— formation

Passer de la fiche à la pratique

Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.

Voir les formations →