如何使用 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 标签。
现在如何使用 ROCR
或 pROC
库创建一个 roc
对象,然后计算 auc
值?
假设我将所有这些值存储在 predictions
数据框中。例如predictions$pred
和predictions$obs
分别是预测值和真实值,依此类推...
由于您没有提供可重现的示例,我假设您有一个二进制分类问题并且您在 Class
上预测是 Good
或 Bad
。
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
我使用 caret 库计算 class 二元 class 化问题的概率和预测,使用 10 折交叉验证和 5 次重复。
现在我有 TRUE(每个数据点的观察值)值,PREDICTED(通过算法)值,Class 0 概率 和 Class 1 概率 被算法用来预测 class 标签。
现在如何使用 ROCR
或 pROC
库创建一个 roc
对象,然后计算 auc
值?
假设我将所有这些值存储在 predictions
数据框中。例如predictions$pred
和predictions$obs
分别是预测值和真实值,依此类推...
由于您没有提供可重现的示例,我假设您有一个二进制分类问题并且您在 Class
上预测是 Good
或 Bad
。
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