1

在 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

不知道该怎么做,反正我用谷歌搜索,其他人也有类似的问题,但他们的解决方案对我不起作用。

4

4 回答 4

2

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

因此

attr(pred.svm1,"probabilities")

应该管用。

于 2012-12-17T04:43:47.717 回答
2

现在对 OP 来说有点晚了,但是要对测试数据集进行预测,您可以使用

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

不是

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

将数据集传递给predict方法的参数被调用newdata,而不是data。如问题中所写,pred.svm1将给出对训练数据集的预测,即用于拟合模型的数据。

于 2013-07-08T15:24:17.170 回答
2

在将值插入模型之前,请确保数据框中的输出Train变量Testfactor.

train$OutputVar <- factor(train$OutputVar)
test$OutputVar <- factor(test$OutputVar)
于 2015-11-12T06:53:43.407 回答
1

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

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

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

顺便说一句,你的第一行还有一个 type-o:methof应该是type.

于 2013-07-08T15:08:56.843 回答