我用R caret训练了一个线性回归模型。现在我正在尝试生成混淆矩阵,但不断收到以下错误信息:
Error in confusionMatrix.default(pred, testing$Final) : 数据和参考因素必须具有相同数量的级别
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)
在生成混淆矩阵时出现错误。这两个对象的级别是相同的。我无法弄清楚问题出在哪里。它们的结构和级别如下所示。它们应该是一样的。任何帮助都将非常感激,因为这让我崩溃了!!
> 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
pred<-format(round(predict(modFit,testing)))
,它会将其转换为字符格式,因为当提供列表时它会这样做。为什么要进行格式化?您应该计算模型的RMSE或MAE,请查看https://heuristically.wordpress.com/2013/07/12/calculate-rmse-and-mae-in-r-and-sas/ - infominer