4

我正在尝试使用 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)是否支持它?

4

0 回答 0