In [2]:
#install.packages("e1071")
In [3]:
library(e1071)
In [4]:
df <- read.csv('evasao.csv')
In [5]:
n <- nrow(df)
set.seed(42) # Se não fizer isso, verá valores diferentes dos meus
limite <- sample(1:n, size = round(0.75*n), replace = FALSE)
train_df <- df[limite,]
test_df <- df[-limite,]
In [58]:
abandonou = train_df$abandonou
periodo = train_df$periodo
bolsa = train_df$bolsa
repetiu = train_df$repetiu
ematraso = train_df$ematraso
disciplinas = train_df$disciplinas
faltas = train_df$faltas
desempenho = train_df$desempenho
modelo_svm <- svm(abandonou ~ periodo + bolsa + repetiu + ematraso + disciplinas + faltas + desempenho , train_df,
kernel = 'polynomial', gamma = 10, cost = 2, type='C-classification')
In [59]:
summary(modelo_svm)
In [65]:
abandonou = test_df$abandonou
periodo = test_df$periodo
bolsa = test_df$bolsa
repetiu = test_df$repetiu
ematraso = test_df$ematraso
disciplinas = test_df$disciplinas
faltas = test_df$faltas
desempenho = test_df$desempenho
predicoes <- predict(modelo_svm, test_df)
In [66]:
head(predicoes)
In [67]:
df_predicao <- data.frame(desempenho = test_df$desempenho,
repetiu = test_df$repetiu,
abandonou_obs = test_df$abandonou,
abandonou_pred = predicoes)
In [68]:
head(df_predicao)
In [69]:
erros <- test_df$abandonou != predicoes
qtdErros <- sum(erros)
percErros <- qtdErros / length(test_df$abandonou)
acuracia <- (1 - percErros) * 100
acuracia
In [ ]: