如何获得R的预测精度?

时间:2014-11-28 19:28:17

标签: r machine-learning

我尝试用“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"

我做错了什么? 有没有更好的方法来获得预测准确度?

1 个答案:

答案 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 <-开始的行看起来有点奇怪。我强烈建议您仔细查看您的代码,因为我怀疑可能会隐藏更多错误。