R:来自e1071预测的svm基于“概率”参数设置而有所不同

时间:2019-05-07 19:19:17

标签: r svm

在某些情况下,根据probability输入参数的设置,e1071软件包svm模型的预测会有差异。此代码示例:

rm(list = ls())
data(iris)
## Training and testing subsets
set.seed(73)  # For reproducibility
ri = sample(seq(1, nrow(iris)), round(nrow(iris)*0.8))
train = iris[ri, ]
test  = iris[-ri,]
## Models and predictions with probability setting F or T
set.seed(42)  # Just to exclude that randomness in algorithm itself is the cause
m1 <- svm(Species ~ ., data = train, probability = F)
pred1 = predict(m1, newdata = test, probability = F)
set.seed(42)  # Just to exclude that randomness in algorithm itself is the cause
m2 <- svm(Species ~ ., data = train, probability = T)
pred2 = predict(m2, newdata = test, probability = T)
## Accuracy
acc1 = sum(test$Species == pred1)/nrow(iris)
acc2 = sum(test$Species == pred2)/nrow(iris)

会给予
acc1 = 0.18666 ...
acc2 = 0.19333 ...

我的结论是svm()根据概率参数的设置执行不同的计算。
正确吗?
如果是这样,为什么又有何不同?
在包或函数的文档中,我还没有看到任何有关此的信息。

我为此感到烦恼的原因是,我发现分类的性能不仅不同,而且在我根据〜250个〜800个观察值进行分类的项目中probability = T时始终表现稍差基因丰度(生物信息学的东西)。该项目中的代码包含数据清理功能,并使用交叉验证,因此在此处包含的代码有点庞大,因此您必须相信我的意思。

有什么想法的人吗?

0 个答案:

没有答案