Error in Confusion Matrix : the data and reference factors must have the same number of levels

1.9K    Asked by Amitjaisawal in Python , Asked on Apr 12, 2021

 I've trained a Linear Regression model with R caret. I'm now trying to generate a confusion matrix and keep getting the following error:

Error in confusionMatrix.default(pred, testing$Final): the data and reference factors must have the same number of levels

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)

The error occurs when generating the confusion matrix. The levels are the same on both objects. I can’t figure out what the problem is. Their structure and levels are given below. They should be the same. Any help would be greatly appreciated as its making me cracked!!

> strpred)

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

Answered by Amit jaisawal

Whenever you face an error: `data` and `reference` should be factors with the same levels, make sure that both the true values and the prediction values are of “factor” data-type.

Here both pred and testing$Final must be of datatype factor. Here testing$Final is of type int, convert it to factor and then build the confusion matrix.

confusionMatrix(factor(pred, levels=1:490), factor(testing$final, levels=1:490))

We have to keep in mind that both levels should be the same.

table(factor(pred, levels=min(test):max(test)), factor(test, levels=min(test):max(test)))// table is name the confusion matrix

It should give you exactly the same confusion matrix as with the function.

You can also read the Artificial IntelligenceTutorial and join AI Course to get a sparkling start for your AI journey.



Your Answer

Interviews

Parent Categories