找不到 ksvm 的预测功能?

Predict function for ksvm is not found?

我正在尝试在 R 中使用库 kernlab 中的函数 predict.ksvm。 我一直在阅读以下 link 的文档: 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"

简单尝试

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

它应该可以工作,因为 mySvm 是 class ksvm 的对象,并且会自动为其选择适当的函数 method

写的时候

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

它不起作用,因为 ksvm class 的 predict 方法对您有些隐藏,假装不存在。如果它是一个 S3 函数,你可以写 kernlab:::predict.ksvm,但在这种情况下它是一个 S4 函数,所以你需要 getMethod("predict", "ksvm") 才能看到这个函数。