L'astuce du noyau

Machines à vecteurs de support en R

Kailash Awati

Instructor

L'idée de base

  • Concevoir une transformation qui rende le problème linéairement séparable.
  • Nous verrons comment le faire pour un ensemble radialement séparable.
Machines à vecteurs de support en R

Chapitre 3.3 - ensemble radialement séparable avec frontière de décision

Machines à vecteurs de support en R

Transformer le problème

  • L'équation de la frontière est $x_1 ^ 2 + x_2 ^ 2 = 0.49$
  • Associer $x_1 ^ 2$ à une nouvelle variable $X_1$ et $x_2 ^ 2$ à $X_2$
  • L'équation de la frontière dans l'espace $X_1 - X_2$ devient…
  • $X_1 + X_2 = 0.49$ (une droite !)
Machines à vecteurs de support en R

Tracé dans l'espace X1–X2 — code

  • Utiliser ggplot() pour tracer l'ensemble dans l'espace $X_1 - X_2$
  • Équation de la frontière $X_2 = -X_1 + 0.49$ :
    • $slope = -1$
    • $yintercept = 0.49$
p <- ggplot(data = df4, aes(x = x1sq, y = x2sq, color = y)) + 
  geom_point() + 
  scale_color_manual(values = c("red", "blue")) +
  geom_abline(slope = -1, intercept = 0.49)

p
Machines à vecteurs de support en R

Chapitre 3.3 - ensemble radialement séparable transformé avec frontière de décision

Machines à vecteurs de support en R

Le noyau polynomial — Partie 1

  • Noyau polynomial : (gamma * (u.v) + coef0) ^ degree
    • degree est le degré du polynôme
    • gamma et coef0 sont des hyperparamètres
    • u, v sont des vecteurs (points de données) de l'ensemble
  • On peut supposer qu'il faut un polynôme de degré 2 (transformation)
Machines à vecteurs de support en R

Fonctions noyau

  • La formulation mathématique des SVM exige des transformations avec des propriétés précises.
  • Les fonctions qui respectent ces propriétés sont des fonctions noyau
  • Les fonctions noyau généralisent le produit scalaire de vecteurs
  • Idée clé : utiliser un noyau qui sépare bien les données !
Machines à vecteurs de support en R

Ensemble radialement séparable — noyau quadratique

  • Division entraînement/test 80/20
  • Construire un SVM quadratique pour l'ensemble radialement séparable :
    • Définir degree = 2
    • Garder les valeurs par défaut de cost, gamma et coef0 (1, 1/2 et 0)
svm_model <- svm(y ~ ., data = trainset, type = "C-classification", kernel = "polynomial", degree = 2)
# Prédictions
pred_test <- predict(svm_model, testset)
mean(pred_test == testset$y)
0.9354839
# Visualiser le modèle
plot(svm_model, trainset)
Machines à vecteurs de support en R

Chapitre 3.3 - ensemble radialement séparable, coût par défaut, noyau quadratique, tracé avec svm.plot

Machines à vecteurs de support en R

Passons à la pratique !

Machines à vecteurs de support en R

Preparing Video For Download...