预测R中的svm使用相同的输入返回不同的结果

时间:2014-04-24 11:13:21

标签: r svm libsvm

我使用SVM的一个非常简单的例子,但是预测方法返回的结果并不总是相同的。

这是我运行的代码:

library(e1071)

##不要这样做:r_m(list = ls())

x =  c(2,3,3,1,1,2,3  ,   1,1,2,2,3,2,3)
dim(x) <- c(7 ,2)   
y = factor(c(T,T,T,F,F,F,F))

DF <- data.frame(x = x, y = y)
model = svm(y ~ x, data = DF,  method = "C-classification", cost = 1, 
             kernel = "linear")

# exactly the same data as x
xtest =     c(2,3,3,1,1,2,3  ,   1,1,2,2,3,2,3) 
dim(xtest) <- c(7 ,2)  

predict(model,  newdata = data.frame(x = xtest), prob=TRUE)  
predict(model,  newdata = data.frame(x = xtest),  prob=TRUE)  
predict(model,  newdata = data.frame(x = xtest),  prob=TRUE)  

但我有以下输出:

> predict(model,  newdata = data.frame(x = xtest), prob=TRUE)  
   1    2    3    4    5    6    7 
TRUE TRUE TRUE TRUE TRUE TRUE TRUE 
attr(,"probabilities")
  TRUE FALSE
1  0.5   0.5
2  0.5   0.5
3  0.5   0.5
4  0.5   0.5
5  0.5   0.5
6  0.5   0.5
7  0.5   0.5
Levels: FALSE TRUE
> predict(model,  newdata = data.frame(x = xtest),  prob=TRUE)  
   1    2    3    4    5    6    7 
TRUE TRUE TRUE TRUE TRUE TRUE TRUE 
attr(,"probabilities")
  TRUE FALSE
1  0.5   0.5
2  0.5   0.5
3  0.5   0.5
4  0.5   0.5
5  0.5   0.5
6  0.5   0.5
7  0.5   0.5
Levels: FALSE TRUE
> predict(model,  newdata = data.frame(x = xtest),  prob=TRUE)
    1     2     3     4     5     6     7 
FALSE FALSE FALSE FALSE FALSE FALSE FALSE 
attr(,"probabilities")
          TRUE FALSE
1 3.000001e-14     1
2 3.000001e-14     1
3 3.000001e-14     1
4 3.000001e-14     1
5 3.000001e-14     1
6 3.000001e-14     1
7 3.000001e-14     1
Levels: FALSE TRUE

有时它会连续3次显示相同的输出,但有时会显示不同的内容,如上所示。

注意:我正在使用RStudio

为什么会这样? 为什么预测方法永远不会预测一些连贯的东西?

0 个答案:

没有答案