Предсказания Предупреждения при прогнозировании модели SVM с подгонкой каретки - PullRequest
0 голосов
/ 19 мая 2018

Я надеюсь получить некоторые указания относительно того, почему я получаю:

Warning message: In method$predict(modelFit = modelFit, newdata =
newdata, submodels = param) :   kernlab class prediction calculations
failed; returning NAs

Когда я распечатываю прогноз:

svmRadial_Predict
  [1] <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>....

Код, который я написал для выполненияпримерка SVM:

    #10-fold cross validation in 3 repetitions 
    control = trainControl(seeds = s, method="repeatedcv", number=10,
repeats=3, savePredictions = TRUE, classProbs =  TRUE)

Модель фитинга SVM выглядит следующим образом:

svmRadial_model = train(y=modelTrain$Emotion,
                        x=modelTrain[c(2:4)],
                        method ='svmRadial',
                        trControl = control,
                        data=modelTrain,
                        tuneLength = 3
                        )

И код, который я написал для выполнения прогноза, выглядит следующим образом:

    svmRadial_Predict <- predict(svmRadial_model, 
newdata = modelTest[c(2:4)], probability = TRUE )

Я проверил данные, и в наборе обучения или тестирования нет значений NA.Значение y является фактором, а значения x являются числовыми, если это имеет значение?Любые советы по отладке этого будут очень благодарны!

Поскольку модель тренируется, я вижу предупреждения вроде этого:

line search fails -1.407938 -0.1710936 2.039448e-05

, который, как я предположил, была просто неспособна соответствовать модели.гиперплоскость для конкретных наблюдений в данных.Я использую ядро ​​svmRadial. Данные, которые я пытаюсь разместить, уже отцентрированы и масштабированы с помощью функции R. scale ().

Дальнейшая работа заставляет меня поверить, что это как-то связано с флагом classProbs = TRUE.,Если я пропущу это, никакие предупреждения не напечатаны.Я запустил еще один прогон своего кода. Похоже, что для выполнения этой задачи на моем ноутбуке уходит целая вечность, но я сообщу о результатах, как только это будет выполнено.

В качестве окончательного редактирования модельподгонка завершена без ошибок, и я могу использовать эту модель очень хорошо для прогнозирования / вычисления матрицы путаницы и т. д. Я не понимаю, почему включение classProbs = TRUE нарушает его, но, возможно, это связано с комбинацией перекрестной проверки, котораяперекрестная проверка, которую я запросил в моем trainControl

1 Ответ

0 голосов
/ 19 мая 2018

Мое решение для этого было просто пропустить параметр classProbs = TRUE функции trainControl.Как только я это сделал, все заработало.Я предполагаю, что это связано с тем, что происходит с перекрестной проверкой под капотом, но я не уверен в этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...