Длина trainPred неверна в функции прогнозирования с R - PullRequest
0 голосов
/ 14 февраля 2020

Это мой код для части Наивного Байеса a

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

, но я получаю неправильное число для длины trainPred, которая в два раза больше, чем фактический размер trainPre.

Даже когда я использую

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

, я получаю только 0 для длины trainPred

, поэтому, когда я запускаю приведенный ниже код, я получаю ошибку

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

1 Ответ

0 голосов
/ 15 февраля 2020

Я только что решил проблему и тоже хотел поделиться ответом:

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

Просто сделайте их Фактором.

...