Функция прогнозирования для ksvm не найдена? - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь использовать функцию 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 Ответ

0 голосов
/ 12 декабря 2018

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

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"), чтобы увидеть функцию.

...