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

问题描述 投票:0回答:2

这是我的朴素贝叶斯部分代码

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, ]

检查余额

print(table(NaiveData$prog))



 0   1 
496 261 

检查火车表

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
r naivebayes
2个回答
0
投票

您会获得属于每个班级的概率。在您的情况下,您有2种类型的标签,因此长度是其2倍。您可以找到每行的最大值以获取标签,请参见下文:


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.