我试图在R kernlab包中使用一个类svm检测异常值并输出为概率 . 导入数据和模型构建过程似乎都很好,但是当我尝试通过指定type =“probabilities”来预测模型时,它给出了“ksvm对象不包含概率模型”错误 . 我使用的是3.1.0版本,这是我的代码 .

mydata <- read.table("C:/Temp/MyTrainData.csv", header = TRUE, sep=",", dec=".")
mydata1 <- as.matrix(mydata)
model <- ksvm(mydata1,type="one-svc",kernel="rbfdot",kpar="automatic",prob.model = TRUE)
mytest <- read.table("C:/Temp/MyTestData.csv", header = TRUE, sep=",", dec=".")
mytest1 <- as.matrix(mytest)
pred <- predict(model,mytest1,type="probabilities")

它给出了以下内容:

Error in .local(object, ...) : 
  ksvm object contains no probability model. Make sure you set the paramater prob.model in ksvm during training.

如上所示,我已经为ksvm函数设置了prob.model = TRUE,并且在那个阶段没有收到任何错误,直到我试图预测新数据 . 我也试过e1071包,但得到了类似的错误 . 只是想知道一个类svm是否允许概率选项?如果没有,是否有任何解决方法或其他流行软件(例如,RapidMiner)是否支持?