我有一个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
此致 斯里兰卡。
答案 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"))];