L'astuce du noyau

Machines à vecteurs de support en R

Kailash Awati

Instructor

L'idée de base

  • Concevez une transformation rendant le problème linéairement séparable.
  • Nous verrons comment faire pour un jeu de données radialement séparable.
Machines à vecteurs de support en R

Chapitre 3.3 - jeu de données 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$
  • Remplacez $x_1 ^ 2$ par une nouvelle variable $X_1$ et $x_2 ^ 2$ par $X_2$
  • Dans l'espace $X_1 - X_2$, l'équation de la frontière devient…
  • $X_1 + X_2 = 0.49$ (une droite !)
Machines à vecteurs de support en R

Tracer dans l'espace X1–X2 - code

  • Utilisez ggplot() pour tracer le jeu de données 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 - jeu de données 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) du jeu de données
  • 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 aux propriétés spécifiques.
  • Les fonctions qui satisfont ces propriétés sont des fonctions noyau
  • Les fonctions noyau généralisent le produit scalaire
  • Idée clé : utiliser un noyau qui sépare bien les données !
Machines à vecteurs de support en R

Jeu radialement séparable - noyau quadratique

  • Découpage 80/20 entraînement/test
  • Construisez un SVM quadratique pour le jeu de données radialement séparable :
    • Définir degree = 2
    • Conserver 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)
# Predictions
pred_test <- predict(svm_model, testset)
mean(pred_test == testset$y)
0.9354839
# Visualize model
plot(svm_model, trainset)
Machines à vecteurs de support en R

Chapitre 3.3 - jeu 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...