Visualizando SVMs lineares

Support Vector Machines em R

Kailash Awati

Instructor

  • Faça o gráfico dos dados de treino usando ggplot().
# Visualize os dados de treino, distinguindo classes pela cor
p <- ggplot(data = trainset, aes(x = x1, y = x2, color = y)) +
     geom_point() +
     scale_color_manual(values = c("red", "blue"))
# Renderize o gráfico
p
  • Destaque os vetores de suporte usando index de svm_model.
# Identifique os vetores de suporte
df_sv <- trainset[svm_model$index, ]
# Marque os vetores de suporte no gráfico
p <- p + geom_point(data = df_sv,
                    aes(x = x1, y = x2),
                    color = "purple",
                    size = 4, alpha = 0.5)
# Mostre o gráfico
p
Support Vector Machines em R

Capítulo 2.2 - dados linearmente separáveis, custo padrão, kernel linear com vetores de suporte

Support Vector Machines em R

Encontre a inclinação e o intercepto da fronteira:

  • Construa o vetor de pesos w a partir de coefs e SV de svm_model.
# Construa o vetor de pesos
w <- t(svm_model$coefs) %*% svm_model$SV
  • slope =-w[1] / w[2]
# Calcule a inclinação e salve em uma variável
slope_1 <- -w[1] / w[2]
  • intercept = svm_model$rho / w[2]
# Calcule o intercepto e salve em uma variável
intercept_1 <- svm_model$rho / w[2]
Support Vector Machines em R
  • Adicione a fronteira de decisão usando a inclinação e o intercepto calculados no slide anterior.
  • Use geom_abline() para adicionar a fronteira ao gráfico.
# Trace a fronteira de decisão com base na inclinação e no intercepto calculados
p <- p + geom_abline(slope = slope_1,
                     intercept = intercept_1)
  • Margens paralelas à fronteira, deslocadas por 1 / w[2] de cada lado.
# Adicione as margens ao gráfico
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")
# Mostre o gráfico
p
Support Vector Machines em R

Capítulo 2.2 - dados linearmente separáveis, custo padrão, kernel linear com vetores de suporte, fronteira de decisão e margens

Support Vector Machines em R

Classificadores de margem suave

  • Permita incerteza na posição/forma da fronteira
    • Nunca perfeitamente linear
    • Geralmente desconhecida
  • Nossa fronteira é linear, então podemos reduzir a margem
Support Vector Machines em R

Visualizando a fronteira de decisão com a função svm plot()

  • A função plot() de e1071 oferece uma forma simples de traçar a fronteira de decisão.
# Visualize a fronteira de decisão usando a função plot embutida
plot(x = svm_model,
     data = trainset)
Support Vector Machines em R

Capítulo 2.2 - conjunto de dados linearmente separável, custo padrão, kernel linear, plot usando svm.plot

Support Vector Machines em R

Vamos praticar!

Support Vector Machines em R

Preparing Video For Download...