R 中的随机森林评估

Random forest evaluation in R

我是 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)

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

library(pROC)

auc <-roc(test$goodkit,prediction)

print(auc)

这根本行不通。

我已经阅读了 pROC 手册,但我无法理解所有内容。如果有人可以帮助编写代码或 post 一个 link 一个很好的实用示例,那将非常有帮助。

使用 ROCR 包,以下代码应该可以计算 AUC:

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

你的问题是 predictrandomForest 对象上 type='prob' returns 两个预测:每列包含属于每个 class 的概率(用于二进制预测)。

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

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