我尝试用“cyl”作为因子变量来预测“mtcars”数据中的“cyl”:
data(mtcars)
mtcars$cyl <- as.factor(mtcars$cyl)
我将数据集拆分为“training”和“testing”:
inTrain = inTrain <- createDataPartition(y=mtcars$cyl,p=0.75, list=FALSE)
training = mtcars[ inTrain,]
testing = mtcars[-inTrain,]
并适合随机森林模型:
modelRF <- train(cyl ~ .,method="rf",data=training)
predRF <- predict(modelRF,testing)
目前我尝试使用confusionMatrix函数获取预测准确度:
confusionMatrix(testing$cyl, predict(predRF, newdata = testing))
...但我一直收到这个错误:
Error in UseMethod("predict") :
no applicable method for 'predict' applied to an object of class "factor"
我做错了什么? 有没有更好的方法来获得预测准确度?
答案 0 :(得分:4)
predRF
已经 预测 - 这不是你可以有意义地提供给predict()
的东西。因此,您将得到如下的混淆矩阵:
> confusionMatrix(testing$cyl,predRF)
Confusion Matrix and Statistics
Reference
Prediction 4 6 8
4 2 0 0
6 0 1 0
8 0 0 3
此外,虽然语法上有效,但从inTrain = inTrain <-
开始的行看起来有点奇怪。我强烈建议您仔细查看您的代码,因为我怀疑可能会隐藏更多错误。