Visualisation des SVM linéaires

Machines à vecteurs de support en R

Kailash Awati

Instructor

  • Tracez les données d'entraînement avec ggplot().
# Visualiser les données d'entraînement, distinguer les classes par couleur
p <- ggplot(data = trainset, aes(x = x1, y = x2, color = y)) +
     geom_point() +
     scale_color_manual(values = c("red", "blue"))
# Afficher le graphique
p
  • Indiquez les vecteurs de support avec index de svm_model.
# Repérer les vecteurs de support
df_sv <- trainset[svm_model$index, ]
# Marquer les vecteurs de support sur le graphique
p <- p + geom_point(data = df_sv,
                    aes(x = x1, y = x2),
                    color = "purple",
                    size = 4, alpha = 0.5)
# Afficher le graphique
p
Machines à vecteurs de support en R

Chapitre 2.2 - données linéairement séparables, noyau linéaire coût par défaut avec vecteurs de support

Machines à vecteurs de support en R

Trouvez la pente et l'ordonnée à l'origine de la frontière :

  • Construisez le vecteur de poids w à partir de coefs et SV de svm_model.
# Construire le vecteur de poids
w <- t(svm_model$coefs) %*% svm_model$SV
  • pente = -w[1] / w[2]
# Calculer la pente et la stocker dans une variable
slope_1 <- -w[1] / w[2]
  • ordonnée à l'origine = svm_model$rho / w[2]
# Calculer l'ordonnée à l'origine et la stocker dans une variable
intercept_1 <- svm_model$rho / w[2]
Machines à vecteurs de support en R
  • Ajoutez la frontière de décision avec la pente et l'ordonnée à l'origine calculées à la diapositive précédente.
  • Utilisez geom_abline() pour l'ajouter au graphique.
# Tracer la frontière de décision selon la pente et l'ordonnée à l'origine calculées
p <- p + geom_abline(slope = slope_1,
                     intercept = intercept_1)
  • Marges parallèles à la frontière, décalées de 1 / w[2] de chaque côté.
# Ajouter les marges au graphique
p <- p + 
    geom_abline(slope = slope_1,
                intercept = intercept_1 - 1 / w[2],
                linetype = "dashed") + 
    geom_abline(slope = slope_1,
                intercept = intercept_1 + 1 / w[2],
                linetype = "dashed")
# Afficher le graphique
p
Machines à vecteurs de support en R

Chapitre 2.2 - données linéairement séparables, noyau linéaire coût par défaut avec vecteurs de support, frontières de décision et de marge

Machines à vecteurs de support en R

Classifieurs à marge souple

  • Permettre une incertitude sur l'emplacement et la forme de la frontière
    • Jamais parfaitement linéaire
    • Souvent inconnue
  • Notre frontière de décision est linéaire, on peut donc réduire la marge
Machines à vecteurs de support en R

Visualiser la frontière de décision avec la fonction svm plot()

  • La fonction plot() de e1071 offre un moyen simple de tracer la frontière de décision.
# Visualiser la frontière de décision avec la fonction de tracé intégrée
plot(x = svm_model,
     data = trainset)
Machines à vecteurs de support en R

Chapitre 2.2 - jeu de données linéairement séparable, noyau linéaire coût par défaut, tracé avec svm.plot

Machines à vecteurs de support en R

Passons à la pratique !

Machines à vecteurs de support en R

Preparing Video For Download...