Функция прогнозирования для ksvm не найдена?

Я пытаюсь использовать функцию predict.ksvm из библиотеки kernlab в R. Я читал документацию по следующей ссылке: https://www.rdocumentation.org/packages/kernlab/versions/0.9-27/topics/predict.ksvm

Функция ksvm работает, так что это просто функция предсказания, которая в настоящее время не работает.

Код:

library(kernlab)
mySvm<-ksvm(x=as.matrix(train[,-4703]),y=train[,4703],kernel="vanilladot")
predSvm<-predict.ksvm(mySvm,newdata=test[,-4703])

Ошибка:

Error in predict.ksvm(mySvm, newdata = test[, -4703]) : 
could not find function "predict.ksvm"

1 ответ

Решение

Попробуй просто

predSvm <- predict(mySvm, newdata = test[,-4703])

Это должно работать, потому что mySvm является объектом класса ksvm и соответствующий метод функции будет автоматически выбран для него.

Когда ты пишешь

predSvm <- predict.ksvm(mySvm, newdata = test[,-4703])

это не работает, потому что predict метод для ksvm класс несколько скрыт от вас, делает вид, что не существует. Если бы это было S3 функция, вы могли бы написать kernlab:::predict.ksvm, но в данном случае это S4 функция, так что вам нужно getMethod("predict", "ksvm") как увидеть функцию.

Другие вопросы по тегам