朴素贝叶斯分类器出错

时间:2014-03-31 16:22:37

标签: r bayesian

我有一个5000点和12个属性的数据集(其中是类变量)。我在训练(3000点)和测试(2000点)中划分数据并对训练数据进行分类并检查使用准确度指标的错误率,但不幸的是,正在抛出错误,请你帮帮我..

b=as.factor(test_data$Personal.Loan)
model_naivebayes = naiveBayes(Personal.Loan ~.,data=train_data);
naive_predict = predict(model_naivebayes, test_data);
table(naive_predict,b)

错误:     表中的错误(naive_predict,b):     所有参数必须具有相同的长度

当我检查naive_predict中的内容时,它说因子W /' 0' evels

此致 斯里兰卡。

2 个答案:

答案 0 :(得分:1)

我有类似的问题并通过这种方式解决了。我将使用iris数据显示它:

此代码将显示错误消息:

 iris[ , 5] <- as.character(iris[ , 5] )
 classifier<-naiveBayes(iris[,1:4], iris[,5]) 
 table(predict(classifier, iris[,-5]), iris[,5])

如果使用因子,则不会:

 iris[ , 5] <- as.character(iris[ , 5] )
 classifier<-naiveBayes(iris[,1:4], factor(iris[,5]) )
 table(predict(classifier, iris[,-5]), factor(iris[,5]))

答案 1 :(得分:0)

看起来错误发生在第3行。您需要在预测时排除类变量。

naive_predict = predict(model_naivebayes, test_data[,-which(names(predictors) %in% c("Personal.Loans"))];