我正在试验这种naiveBayes
方法。
我首先将这样的数据集构建为矩阵/数组:
new<-cbind(c(rep(1,10),rep(2,10)),rbinom(20,1,0.5),rbinom(20,1,0.5))
colNames(new)=c('var1','var2','var3')
现在,如果我运行naiveBayes(var1~., data=new)
它不起作用,我得到了这个:
Naive Bayes Classifier for Discrete Predictors
Call:
naiveBayes.formula(formula = var1 ~ ., data = new)
A-priori probabilities:
[1] 1
Conditional probabilities:
但是,如果我将它们转换为数据框,例如:
new1<-as.data.frame(new)
naiveBayes(var1~.,new)
我得到了数字数据应该发生的平均值和标准差。
如果我将因子数据框中的新矩阵转换为:
new2<-as.data.frame(matrix(as.factor(new),20,3))
naiveBayes(V1~.,new2)
那么它也可以正常工作。
所以我的主要查询是如何正确地将数组传递给naiveBayes
函数。