ошибка при использовании категориальной переменной с Tune SVM в R - PullRequest
0 голосов
/ 15 мая 2019

Когда я хочу использовать функцию tune(), я получаю сообщение о том, что моя переменная ответа должна быть числовой для регрессии.

Я определил Type = "C", но тогда ошибка определения проблемы.

obj <- tune(svm, clasifica~., data = SUPERVISADO, scale=FALSE, type="C",
            ranges = list(gamma = 2^(-1:1), cost = 2^(2:4)),
            tunecontrol = tune.control(sampling = "fix")
)
 Error in svm.default(x, y, scale = scale, ..., na.action = na.action) : 
      Need numeric dependent variable for regression.
Error in tune(svm, clasifica ~ ., data = SUPERVISADO, scale = FALSE, type = "C",  :  Dependent variable has wrong type!

1 Ответ

0 голосов
/ 18 мая 2019

y должен быть фактором для классификации.См. ?svm.

Обратите внимание на вызов factor() в этом минимальном рабочем примере, вдохновленном вашим кодом:

library(e1071)

tune(svm, factor(vs) ~ ., 
     data = mtcars, 
     scale = FALSE, 
     ranges = list(gamma = 2^(-1:1), 
     cost = 2^(2:4)),
     tunecontrol = tune.control(sampling = "fix"))

Вывод:

Parameter tuning of ‘svm’:

- sampling method: fixed training/validation set

- best parameters:
 gamma cost
     1    4

- best performance: 0.2727273
...