Ho addestrato un modello di regressione lineare con il riferimento R. Ora sto cercando di generare una matrice di confusione e mantenere ottenere il seguente errore:Errore nella matrice di confusione: i dati e i fattori di riferimento devono avere lo stesso numero di livelli
Error in confusionMatrix.default (pred, collaudo $ Finale): i dati ei fattori di riferimento devono avere lo stesso numero di livelli
EnglishMarks <- read.csv("E:/Subject Wise Data/EnglishMarks.csv",
header=TRUE)
inTrain<-createDataPartition(y=EnglishMarks$Final,p=0.7,list=FALSE)
training<-EnglishMarks[inTrain,]
testing<-EnglishMarks[-inTrain,]
predictionsTree <- predict(treeFit, testdata)
confusionMatrix(predictionsTree, testdata$catgeory)
modFit<-train(Final~UT1+UT2+HalfYearly+UT3+UT4,method="lm",data=training)
pred<-format(round(predict(modFit,testing)))
confusionMatrix(pred,testing$Final)
L'errore si verifica quando si genera la matrice di confusione. I livelli sono gli stessi su entrambi gli oggetti. Non riesco a capire quale sia il problema. La loro struttura e i livelli sono indicati di seguito. Dovrebbero essere uguali. Qualsiasi aiuto sarebbe molto apprezzato visto che mi sta facendo crack !!
> str(pred)
chr [1:148] "85" "84" "87" "65" "88" "84" "82" "84" "65" "78" "78" "88" "85"
"86" "77" ...
> str(testing$Final)
int [1:148] 88 85 86 70 85 85 79 85 62 77 ...
> levels(pred)
NULL
> levels(testing$Final)
NULL
L'indizio è giusto nella tua produzione di str. Guarda come sono diversi? pred è del carattere di classe e testing $ Final è di classe intero. quando chiamate il formato qui 'pred <-format (round (predict (modFit, testing)))', lo converte in formato carattere, come quando viene fornito un elenco. Perché stai facendo il formato? e probabilmente dovresti calcolare RMSE o MAE del tuo modello, dai uno sguardo a questo https://heuristically.wordpress.com/2013/07/12/calculate-rmse-and-mae-in-r-and-sas/ – infominer
@infominer Ora ho copiato il risultato char in int usando il comando pred <-as.integer (format (round (predicty (modFit, testing)))) ma lo stesso errore persiste come prima.Non so dove Sto sbagliando – abcd