Visualiser 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 via index dans svm_model.
# Identifier 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, coût par défaut, noyau linéaire 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 l'enregistrer 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 l'enregistrer 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'intercept calculés à la diapositive précédente.
  • Nous utilisons geom_abline() pour l'ajouter au graphique.
# Tracer la frontière de décision à partir de la pente et de l'intercept
p <- p + geom_abline(slope = slope_1,
                     intercept = intercept_1)
  • Marges parallèles à la frontière, décalées de 1 / w[2] de part et d'autre.
# 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, coût par défaut, noyau linéaire avec vecteurs de support, frontières de décision et de marge

Machines à vecteurs de support en R

Classifieurs à marge souple

  • Tenir compte de l'incertitude sur la position / la forme de la frontière
    • Jamais parfaitement linéaire
    • Le plus souvent inconnue
  • Notre frontière est linéaire : on peut réduire la marge
Machines à vecteurs de support en R

Visualiser la frontière avec la fonction svm plot()

  • La fonction plot() de e1071 permet de tracer facilement 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 - ensemble linéairement séparable, coût par défaut, noyau linéaire, tracé avec svm.plot

Machines à vecteurs de support en R

Passons à la pratique !

Machines à vecteurs de support en R

Preparing Video For Download...