Я надеюсь получить некоторые указания относительно того, почему я получаю:
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