【问题标题】:R: AUC from pROC packageR:来自 pROC 包的 AUC
【发布时间】:2019-07-28 09:47:34
【问题描述】:

我最近遇到pROC 包来获取AUC。在帮助部分,他们给出了以下示例:

library("pROC")
data(aSAH)
auc(aSAH$outcome, aSAH$s100b)

在上面,outcomefactor,而 s100bnumerical

我的问题是AUC 在这种情况下如何工作?它适用于s100b 的阈值是多少?还是没关系?

编辑 1 上面的代码生成AUC = 0.73。我如何知道选择了哪个阈值来获取此值?

【问题讨论】:

  • 根据文档:“当使用两个向量 (response, predictor) 或公式 (response~predictor) 参数调用它时,将调用 roc 函数并且只返回 AUC。”我不确定阈值是什么意思,auc 默认使用 0 到 1 之间的所有阈值计算。您也可以查看 ?roc 了解详细信息。
  • @zack 感谢您的回复。我添加了更多信息。基本上,是什么决定了 AUC 的输出。
  • 你听起来有点困惑;正如@zack 所说,AUC 是在所有可能的阈值上计算的。也许我在这里的回答会有所帮助:Getting a low ROC AUC score but a high accuracy.

标签: r machine-learning data-science roc auc


【解决方案1】:

pROC 的auc 函数中的 AUC 是ROC curve 下的面积。该函数在后台首先调用roc函数,所以你所做的相当于:

myroc <- roc(aSAH$outcome, aSAH$s100b)
auc(myroc)

ROC 曲线是通过计算所有可能阈值的敏感性和特异性获得的。您可以使用plot 函数将曲线可视化,AUC 显示为灰色:

plot(myroc, auc.polygon=TRUE)

【讨论】:

    猜你喜欢
    • 2018-05-14
    • 2013-12-29
    • 2016-08-30
    • 2012-05-11
    • 1970-01-01
    • 2022-01-13
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多