0

我是 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 手册,但我无法理解所有内容。如果任何人都可以帮助编写代码或发布指向一个好的实用示例的链接,那将非常有帮助。

4

2 回答 2

1

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

library(ROCR)
predictedROC <- prediction(prediction[,2], as.factor(test$goodkit))
as.numeric(performance(predictedROC, "auc")@y.values))
于 2015-07-28T15:36:09.317 回答
0

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

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

auc1 <-roc(test$goodkit, prediction[,1])
print(auc1)
auc2 <-roc(test$goodkit, prediction[,2])
print(auc2)
于 2015-07-28T18:19:03.923 回答