# Divisão estratificada 70/30
idx_treino <- createDataPartition(dados$classe, p = 0.70, list = FALSE)
# Remover atributos de variância quase nula
variaveis_nzv <- nearZeroVar(x_treino)
# Padronizar: média 0, desvio 1 (essencial para o SVM)
preproc <- preProcess(x_treino, method = c("center", "scale"))
x_treino_norm <- predict(preproc, x_treino)
x_teste_norm <- predict(preproc, x_teste)
# M1 — SVM linear
modelo_svm_linear <- svm(x = x_treino_norm, y = y_treino,
kernel = "linear", cost = 1, scale = FALSE)