Support Vector Machines em R
Kailash Awati
Instructor
df.# Definir semente para reprodutibilidade
set.seed(1)
# Definir o limite superior de linhas no conjunto de treino
sample_size <- floor(0.8 * nrow(df))
# Atribuir linhas a treino/teste aleatoriamente na proporção 80/20
train <- sample(seq_len(nrow(df)), size = sample_size)
# Separar conjuntos de treino e teste
trainset <- df[train, ]
testset <- df[-train, ]
e1071.y no nosso caso.trainset.svm()library(e1071)
svm_model<- svm(y ~ .,
data = trainset,
type = "C-classification",
kernel = "linear",
scale = FALSE)
svm_model mostra:svm_model
Call: svm(formula = y ~ ., data = trainset, type = "C-classification", kernel = "linear", scale = FALSE) Parameters: SVM-Type: C-classification SVM-Kernel: linear cost: 1 gamma: 0.5Number of Support Vectors: 55
# Índices dos vetores de suporte no conjunto de treino svm_model$index# Vetores de suporte svm_model$SV# Intercepto negativo (não ponderado) svm_model$rho# Coeficientes de ponderação dos vetores de suporte svm_model$coefs
4 8 10 11 18 37 38 39 47 59 60 74 76 77 78 80 83 ...x1 x2 5 0.519095949 0.44232464-0.1087075[,1] [1,] 1.0000000
# Acurácia no treino
pred_train <- predict(svm_model, trainset)
mean(pred_train == trainset$y)
1
# Acurácia no teste
pred_test <- predict(svm_model, testset)
mean(pred_test == testset$y)
1
# Perfeito!!
Support Vector Machines em R