无法计算SVM中的概率?

时间:2012-12-17 04:28:50

标签: r

在R中使用来自e1071的svm: 我有以下代码:

svm1<-svm(srv~., data=TrainSet,methof='C-classification',probability=TRUE)
pred.svm1<-predict(svm1,data=Test,probability=TRUE)

当esmining pred.svm1我没有看到概率只有分类 具体做法是:

attr(pred.svm1,"probability")

NULL

不知道该怎么办,无论如何我用Google搜索,其他人也有类似的问题,但他们的解决方案对我不起作用。

4 个答案:

答案 0 :(得分:1)

属性的正确名称是probabilities(注意复数)

因此

attr(pred.svm1,"probabilities")

应该有用。

答案 1 :(得分:1)

OP现在有点晚了,但是为了获得测试数据集的预测,你可以使用

pred.svm1 <- predict(svm1, newdata=Test, ...)

pred.svm1 <- predict(svm1, data=Test, ...)

将数据集传递给predict方法的参数称为newdata,而不是data。如问题中所述,pred.svm1将对 training 数据集进行预测,即用于拟合模型的数据。

答案 2 :(得分:1)

在将值插入模型之前,请确保TrainTest数据框中的输出变量属于factor类型。

train$OutputVar <- factor(train$OutputVar)
test$OutputVar <- factor(test$OutputVar)

答案 3 :(得分:0)

我已经成功地使用probability=TRUE使用了相似的语法很长一段时间,但是你的代码对我不起作用。当我将第二行更改为:

pred.svm1<-predict(svm1,Test,probability=TRUE)

它确实有用(我删除了data=)。老实说,我不知道为什么。

顺便说一下,你的第一行还有一个类型:methof应为type