【发布时间】:2014-12-09 18:58:03
【问题描述】:
在 R 中运行朴素贝叶斯分类器时出现错误。我正在使用以下代码-
mod1 <- naiveBayes(factor(X20) ~ factor(X1) + factor(X2) +factor(X3) +factor(X4)+factor(X5)+factor(X6)+factor(X7)
+factor(X8)+factor(X9)
+factor(X10)+factor(X11)+ factor(X12)+factor(X13)+factor(X14)
+factor(X15)
+factor(X16)+factor(X17)
+factor(X18)+factor(X19),data=intent.test)
res1 <- predict(mod1)$posterior
这段代码的第一部分运行良好。但是当它试图预测后验概率时,它会抛出以下错误-
**Error in as.data.frame(newdata) :
argument "newdata" is missing, with no default**
我尝试运行类似
res1 <- predict(mod1,new_data=intent.test)$posterior
但这也会产生同样的错误。
【问题讨论】:
-
正确的拼写是
newdata,没有下划线(如错误消息中所示),但它是一个可选参数:没有它也可以工作。您的数据集可能有问题,但您没有提供任何有关它的信息。在 data.frame 中将数据编码为因子可能会有所帮助。如果您尝试用其他列来预测最后一列,则可以将模型写得更紧凑,如X20 ~ .。
标签: r