2017-10-28 29 views
0

我有一个数据帧,我想从SVM做出预测,但数据帧没有原始训练数据帧所做的所有水平。有没有简单的方法呢?支持向量机预测不同因素水平的数据帧

这里有一个简单的例子

library(e1071) 
df = data.frame(y = c(rep(1:3, each = 3)), x = rep(c("A", "B", "C"), each = 3)) 

m1 = svm(y ~ x, df) 
df2 = data.frame(x = "B") 

predict(m1, df2) 
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) : 
    contrasts can be applied only to factors with 2 or more levels 

回答

1

只要确保在df2

library(e1071) 
df = data.frame(y = c(rep(1:3, each = 3)), x = rep(c("A", "B", "C"), each = 3)) 

m1 = svm(y ~ x, df) 
df2 = data.frame(x = factor("B",levels = c("A","B","C"))) 

predict(m1, df2) 
指定水平