Visualizzare le SVM lineari

Support Vector Machines in R

Kailash Awati

Instructor

  • Traccia i dati di training con ggplot().
# Visualizza i dati di training, distingui le classi con il colore
p <- ggplot(data = trainset, aes(x = x1, y = x2, color = y)) +
     geom_point() +
     scale_color_manual(values = c("red", "blue"))
# Mostra il grafico
p
  • Evidenzia i support vector usando index da svm_model.
# Identifica i support vector
df_sv <- trainset[svm_model$index, ]
# Evidenzia i support vector nel grafico
p <- p + geom_point(data = df_sv,
                    aes(x = x1, y = x2),
                    color = "purple",
                    size = 4, alpha = 0.5)
# Mostra il grafico
p
Support Vector Machines in R

Capitolo 2.2 - dati linearmente separabili, kernel lineare costo di default con support vector

Support Vector Machines in R

Trova pendenza e intercetta della boundary:

  • Costruisci il vettore dei pesi w da coefs e SV di svm_model.
# Costruisci il vettore dei pesi
w <- t(svm_model$coefs) %*% svm_model$SV
  • slope =-w[1] / w[2]
# Calcola la pendenza e salvala in una variabile
slope_1 <- -w[1] / w[2]
  • intercept = svm_model$rho / w[2]
# Calcola l'intercetta e salvala in una variabile
intercept_1 <- svm_model$rho / w[2]
Support Vector Machines in R
  • Aggiungi la decision boundary usando pendenza e intercetta calcolate nella slide precedente.
  • Usiamo geom_abline() per aggiungere la decision boundary al grafico.
# Traccia la decision boundary in base a pendenza e intercetta calcolate
p <- p + geom_abline(slope = slope_1,
                     intercept = intercept_1)
  • Margini paralleli alla decision boundary, traslati di 1 / w[2] su entrambi i lati.
# Aggiungi i margini al grafico
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")
# Mostra il grafico
p
Support Vector Machines in R

Capitolo 2.2 - dati linearmente separabili, kernel lineare costo di default con support vector, decision e margini

Support Vector Machines in R

Classificatori a margine morbido

  • Consenti incertezza su posizione/forma della boundary
    • Mai perfettamente lineare
    • Di solito sconosciuta
  • La nostra decision boundary è lineare, quindi possiamo ridurre il margine
Support Vector Machines in R

Visualizzare la decision boundary con la funzione svm plot()

  • La funzione plot() di e1071 offre un modo semplice per tracciare la decision boundary.
# Visualizza la decision boundary con la funzione plot integrata
plot(x = svm_model,
     data = trainset)
Support Vector Machines in R

Capitolo 2.2 - dataset linearmente separabile, kernel lineare costo di default, grafico con svm.plot

Support Vector Machines in R

Esercitiamoci!

Support Vector Machines in R

Preparing Video For Download...