2

我正在尝试使用Rpredict.ksvm中库kernlab中的函数。我一直在阅读以下链接中的文档: https ://www.rdocumentation.org/packages/kernlab/versions/0.9-27/topics/predict.ksvm

函数 ksvm 正在工作,所以它只是当前不工作的 predict 函数。

编码:

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"
4

1 回答 1

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")看到这个函数。

于 2018-12-12T10:30:30.650 回答