【发布时间】:2015-07-12 04:17:54
【问题描述】:
我已经使用 R 插入符号训练了一个线性回归模型。我现在正在尝试生成混淆矩阵并不断收到以下错误:
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
【问题讨论】:
-
线索就在您的 str 输出中。看看它们有什么不同? pred 是类字符, testing$Final 是类整数。当您在此处调用格式
pred<-format(round(predict(modFit,testing)))时,它会将其转换为字符格式,就像提供列表时那样。你为什么要格式化?你可能应该计算模型的 RMSE 或 MAE,看看这个heuristically.wordpress.com/2013/07/12/… -
@infominer 现在我已经使用 pred
标签: r machine-learning artificial-intelligence classification linear-regression