R

时间:2015-07-28 14:41:47

标签: r random-forest prediction roc auc

我是R的新手,我正努力创造我的第一个模特。我正在进行一个2级随机森林项目,到目前为止,我已经按照以下方式对模型进行了编程:

library(randomForest)

set.seed(2015)

randomforest <- randomForest(as.factor(goodkit) ~ ., data=training1, importance=TRUE,ntree=2000)

varImpPlot(randomforest)

prediction <- predict(randomforest, test,type='prob')

print(prediction)

我不确定为什么我没有得到我的模型的整体预测。我必须在我的代码中遗漏一些东西。我在测试集中获得了每个案例的OOB和预测,但没有得到模型的整体预测。

library(pROC)

auc <-roc(test$goodkit,prediction)

print(auc)

这根本不起作用。

我已阅读过pROC手册,但我无法理解所有内容。如果任何人都可以帮助代码或发布链接到一个好的实际样本,那将是非常有帮助的。

2 个答案:

答案 0 :(得分:1)

Using the ROCR package, the following code should work for calculating the AUC:

library(ROCR)
predictedROC <- prediction(prediction[,2], as.factor(test$goodkit))
as.numeric(performance(predictedROC, "auc")@y.values))

答案 1 :(得分:0)

您的问题是predict对象randomForest上的type='prob'会返回两个预测:每列包含属于每个类的概率(用于二进制预测)。

您必须决定使用哪些预测来构建ROC曲线。幸运的是,对于二进制分类,它们是相同的(只是相反):

auc1 <-roc(test$goodkit, prediction[,1])
print(auc1)
auc2 <-roc(test$goodkit, prediction[,2])
print(auc2)