#svm-marges — Apprentissage supervisé
Machines à vecteurs de support : la plus large marge possible, le paramètre C, et le noyau RBF qui courbe la frontière.
Ce que tu vas manipuler
- Bienvenue dans #svm-marges. Sur le plan : 80 points en deux classes, bleus et roses, bien séparés. La droite rose est l'hyperplan séparateur trouvé par une SVM linéaire avec
C = 1; les deux pointillés jaunes sont les bords de sa marge, la bande vide qu'elle laisse de chaque côté. Il existe une infinité de droites qui séparent ces deux nuages. Parmi toutes, la machine à vecteurs de support choisit celle qui laisse le plus de place : la marge la plus large possible. Pense à un couloir tracé au milieu d'une rue plutôt que collé au trottoir : les prochains passants auront moins de chances de le franchir. - Qui décide de la position de cette droite ? Pas les 80 points : seulement ceux qui touchent la marge. Tape
/vecteurspour les entourer de jaune. - Le paramètre C règle le prix d'un point mal placé (dans la marge ou du mauvais côté). Descends-le au minimum :
/c 0.01. - À l'inverse, monte-le au maximum :
/c 100. Chaque point dans la marge coûte maintenant très cher. - Changeons de problème :
/dataset anneaux. Une classe au centre, l'autre tout autour. - Passe au noyau gaussien :
/noyau rbf. Le noyau projette les points dans un espace où ils deviennent séparables par un hyperplan ; vu depuis notre plan, cet hyperplan devient une courbe. - gamma règle la portée de chaque point dans le noyau RBF. Pousse-le à fond :
/gamma 10. - À toi de jouer :
/gamma 0.3pour une frontière lisse,/dataset chevauchementpuis/c 0.1et/c 100pour voir C arbitrer entre largeur de marge et points mal classés,/margepour masquer ou afficher les bords de la marge,/entrainer 10pour surprendre l'optimisation avant qu'elle ait convergé,/graine 12pour un autre tirage,/reinitpour repartir. Pour juger ces frontières autrement qu'à l'œil, file dans #metriques-classification ; pour une méthode qui ne trace aucune frontière explicite, #knn.
Commandes du canal
/c <C=0.01..100>— Règle le paramètre C : le prix d'un point dans la marge (petit = marge large, grand = marge dure)./noyau <lineaire|rbf>— Choisit le noyau : linéaire (une droite) ou RBF (la frontière se courbe)./gamma <gamma=0.1..10>— Règle gamma, la portée de chaque point dans le noyau RBF (petit = frontière lisse, grand = tourmentée)./vecteurs— Affiche ou masque les anneaux jaunes autour des vecteurs de support./marge— Affiche ou masque les deux bords de la marge (pointillés jaunes, noyau linéaire)./entrainer <passes=10..500>— Fixe le nombre de passes d'optimisation (SMO) et ré-entraîne : peu de passes = solution grossière./dataset <separable|chevauchement|anneaux>— Change le jeu de données 2D et ré-entraîne la SVM courante./bruit <0..1>— Règle la dispersion des points (0 = nuages serrés, 1 = très étalés) et ré-entraîne./graine <1..99>— Change la graine du tirage des points (même dataset, autre échantillon) et ré-entraîne./reinit— Revient à l'état initial : separable, noyau linéaire, C = 1, gamma = 1, 200 passes.
Glossaire
- Machine à vecteurs de support (SVM)
- Classifieur supervisé qui cherche l'hyperplan séparateur laissant la plus grande marge possible entre les deux classes. Sa frontière ne dépend que de quelques points, les vecteurs de support.
- Hyperplan séparateur
- Ensemble des points où
w·x + b = 0: une droite dans le plan, un plan en 3D, un hyperplan au-delà. Le signe dew·x + bdonne la classe prédite. - Marge
- Distance entre l'hyperplan et les points les plus proches de chaque classe, soit
1/||w||quand on normalisey·(w·x + b) ≥ 1. La SVM la maximise : une marge large tolère mieux les nouveaux points. - Vecteur de support
- Point d'entraînement situé sur le bord de la marge ou à l'intérieur (
y·f(x) ≤ 1), donc à coefficientαnon nul. Seuls ces points déterminent la frontière ; les autres pourraient disparaître sans rien changer. - Paramètre C (régularisation)
- Prix payé pour chaque point mal placé dans l'objectif
½||w||² + C·Σξᵢ. C petit : régularisation forte, marge large, erreurs tolérées. C grand : marge étroite qui colle aux points, risque de sur-apprentissage. - Hinge loss
- Perte
max(0, 1 − y·f(x)): nulle dès qu'un point est du bon côté et au-delà de la marge, croissante ensuite. C'est elle que la SVM minimise avec la régularisation ; sa moyenne mesure à quel point les données respectent la marge. - Noyau (kernel)
- Fonction
K(x, z)qui mesure la similarité de deux points comme un produit scalaire dans un espace de plus grande dimension, sans jamais y aller. Linéaire :x·z; RBF :exp(−gamma·||x − z||²). - Astuce du noyau
- Remplacer chaque produit scalaire de l'algorithme par
K(x, z): la SVM trouve alors un hyperplan à marge maximale dans l'espace du noyau, qui apparaît comme une frontière courbe dans le plan d'origine. Le calcul reste en O(n²) quelle que soit la dimension implicite. - Noyau RBF (gaussien) et gamma
K(x, z) = exp(−gamma·||x − z||²): chaque vecteur de support rayonne une bosse gaussienne. gamma règle sa portée (≈1/√(2·gamma)) : petit, la frontière est lisse ; grand, elle se tord autour de chaque point.- Marge souple / marge dure
- Marge dure : aucun point n'a le droit d'entrer dans la marge (données séparables, C → ∞). Marge souple : on autorise des dépassements
ξᵢpayés au prix C, ce qui rend la SVM utilisable sur des données bruitées ou non séparables.
Autres canaux du thème Apprentissage supervisé
- #entrainement-live — Six algorithmes qui apprennent sous tes yeux, comme une vidéo : REC, timecode, sous-titres, métriques en direct. Regarder est gratuit ; toucher au modèle est Premium.
- #regression-lineaire — Ajuster une droite : moindres carrés, résidus, MSE, R² et descente de gradient — la première brique de tout apprentissage supervisé.
- #regression-logistique — Classer en deux catégories : sigmoïde, frontière de décision, seuil et log-loss — et pourquoi une droite ne suffit pas toujours.
- #arbres-de-decision — Un arbre qui découpe le plan en rectangles : Gini, entropie, profondeur, élagage — et le sur-apprentissage qu'on voit à l'œil nu.
- #knn — Les k plus proches voisins : classer par ressemblance, choisir k, changer de distance — et voir la frontière se lisser ou se déchirer.
- #svm-marges — Machines à vecteurs de support : la plus large marge possible, le paramètre C, et le noyau RBF qui courbe la frontière.
- #metriques-classification — Précision, rappel, F1, matrice de confusion, ROC et AUC : lire honnêtement un classifieur, surtout quand les classes sont déséquilibrées.