如何使用 pROC 或 ROCR 包在 R 中根据预测的 class 概率计算 ROC 曲线下的面积?

How to compute area under ROC curve from predicted class probabilities, in R using pROC or ROCR package?

我使用 caret 库计算 class 二元 class 化问题的概率和预测,使用 10 折交叉验证和 5 次重复。

现在我有 TRUE(每个数据点的观察值)值,PREDICTED(通过算法)值,Class 0 概率Class 1 概率 被算法用来预测 class 标签。

现在如何使用 ROCRpROC 库创建一个 roc 对象,然后计算 auc 值?

假设我将所有这些值存储在 predictions 数据框中。例如predictions$predpredictions$obs分别是预测值和真实值,依此类推...

由于您没有提供可重现的示例,我假设您有一个二进制分类问题并且您在 Class 上预测是 GoodBad

predictions <- predict(object=model, test[,predictors], type='prob')

你可以这样做:

> pROC::roc(ifelse(test[,"Class"] == "Good", 1, 0), predictions[[2]])$auc
# Area under the curve: 0.8905