trainPred 的长度在 R 的预测函数中不正确

The length of trainPred is not correct in prediction function with R

这是我的部分朴素贝叶斯 a

trainPred<- predict(NBclassfier, newdata = train, type = "raw")

但是我得到的 trainPred 长度的数字是错误的,它比 trainPre 的实际大小大两倍。

即使我正在使用

trainPred<- predict(NBclassfier, newdata = train, type = "class")

对于 trainPred 的长度,我只得到 0

所以当我运行下面的代码出现错误时

trainTable <- table(train$prog, trainPred)

NBclassifer 的代码是 NBclassfier = naiveBayes(prog~., data= train)

整个代码有一个错误

 library(caret)
library(e1071)

 set.seed(25)
trainIndex=createDataPartition(NaiveData$prog, p=0.8)$Resample1
train=NaiveData[trainIndex, ]
test=NaiveData[-trainIndex, ]

check the balance

print(table(NaiveData$prog))



 0   1 
496 261 

Check the train table

print(table(train$prog))



 0   1 
388 218 

NBclassfier = naiveBayes(prog~., data= train)
trainPred <- predict(NBclassfier, newdata = train, type = "raw")
trainPred<- trainPred
trainTable <- table(train$prog, trainPred)


Error in table(train$prog, trainPred) :   all arguments must have the same length

我刚刚解决了这个问题,也想分享答案,

NBclassfier = naiveBayes(as.factor(prog)~., data= train)
confusionMatrix(as.factor(trainPred), as.factor(train$prog), mode = "prec_recall")

让他们成为因素。