我试图在R kernlab包中使用一个类svm检测异常值并输出为概率。导入数据和模型构建过程似乎都很好,但是当我尝试通过指定type ="概率"来预测模型时。它给了我" 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)是否支持?