AUC 代表什么,它是什么?

机器算法验证 分类 预言 奥克 缩写
2022-01-22 10:56:31

搜索了高和低,但无法找出与预测相关的 AUC 代表或意味着什么。

4个回答

缩写

AUC 大部分时间用于表示 AUROC,这是一种不好的做法,因为正如 Marc Claesen 指出的那样,AUC 是模棱两可的(可能是任何曲线),而 AUROC 不是。


解读 AUROC

AUROC 有几种等效的解释

  • 均匀抽取的随机正数排在均匀抽取的随机负数之前的期望。
  • 在均匀绘制的随机负数之前排名的正数的预期比例。
  • 如果排名在均匀绘制的随机负数之前被拆分,则预期的真阳性率。
  • 预期的负数比例排在均匀绘制的随机正数之后。
  • 如果排名在均匀绘制的随机正数之后被拆分,则预期的误报率。

更进一步:如何推导出 AUROC 的概率解释?


计算 AUROC

假设我们有一个概率二元分类器,例如逻辑回归。

在呈现 ROC 曲线(= 接收者操作特征曲线)之前,必须了解混淆矩阵的概念。当我们进行二元预测时,可能有 4 种结果:

  • 我们预测 0 而真正的类实际上是 0:这称为True Negative,即我们正确地预测该类是负的 (0)。例如,防病毒软件不会将无害文件检测为病毒。
  • 我们预测 0 而真正的类实际上是 1:这称为False Negative,即我们错误地预测该类是负的 (0)。例如,防病毒软件无法检测到病毒。
  • 我们预测 1 而真正的类实际上是 0:这称为False Positive,即我们错误地预测类是正的 (1)。例如,防病毒软件将无害文件视为病毒。
  • 我们预测 1 而真正的类实际上是 1:这称为True Positive,即我们正确地预测类是正的 (1)。例如,防病毒软件正确地检测到了病毒。

为了得到混淆矩阵,我们检查了模型所做的所有预测,并计算这四种结果中的每一种发生了多少次:

在此处输入图像描述

在这个混淆矩阵的例子中,在被分类的 50 个数据点中,45 个被正确分类,5 个被错误分类。

由于要比较两个不同的模型,使用单个度量而不是多个度量通常更方便,因此我们从混淆矩阵计算两个度量,稍后我们将它们合并为一个:

  • 真阳性率TPR),又名。灵敏度、命中率召回率,定义为直观地说,这个指标对应于被正确认为是正的正数据点相对于所有正数据点的比例。换句话说,TPR 越高,我们将错过的正数据点越少。TPTP+FN
  • 误报率FPR),又名。fall-out,定义为直观地说,这个指标对应于被错误地认为是正的负数据点相对于所有负数据点的比例。换句话说,FPR 越高,错误分类的负面数据点就越多。FPFP+TN

要将 FPR 和 TPR 组合成一个指标,我们首先计算前两个指标,其中有许多不同的阈值(例如)用于逻辑回归,然后将它们绘制在一个图上,横坐标为 FPR 值,纵坐标为 TPR 值。得到的曲线称为 ROC 曲线,我们考虑的度量是这条曲线的 AUC,我们称之为 AUROC。0.00;0.01,0.02,,1.00

下图以图形方式显示了 AUROC:

在此处输入图像描述

在该图中,蓝色区域对应于接收器操作特征 (AUROC) 曲线下的区域。对角线上的虚线表示随机预测变量的 ROC 曲线:它的 AUROC 为 0.5。随机预测器通常用作基线,以查看模型是否有用。

如果您想获得一些第一手经验:

虽然我参加聚会有点晚了,但这是我的 5 美分。@FranckDernoncourt (+1) 已经提到了 AUC ROC 的可能解释,我最喜欢的是他名单上的第一个(我使用不同的措辞,但它是相同的):

分类器的 AUC 等于分类器将随机选择的正例排名高于随机选择的负例的概率,即P(score(x+)>score(x))

考虑这个例子(auc=0.68):

在此处输入图像描述

让我们尝试模拟一下:随机抽取正负样本,然后计算正样本得分大于负样本的比例

cls = c('P', 'P', 'N', 'P', 'P', 'P', 'N', 'N', 'P', 'N', 'P',
        'N', 'P', 'N', 'N', 'N', 'P', 'N', 'P', 'N')
score = c(0.9, 0.8, 0.7, 0.6, 0.55, 0.51, 0.49, 0.43, 0.42, 0.39, 0.33, 
          0.31, 0.23, 0.22, 0.19, 0.15, 0.12, 0.11, 0.04, 0.01)

pos = score[cls == 'P']
neg = score[cls == 'N']

set.seed(14)
p = replicate(50000, sample(pos, size=1) > sample(neg, size=1))
mean(p)

我们得到 0.67926。很接近,不是吗?

 

顺便说一句,在 RI 中通常使用ROCR包来绘制 ROC 曲线和计算 AUC。

library('ROCR')

pred = prediction(score, cls)
roc = performance(pred, "tpr", "fpr")

plot(roc, lwd=2, colorize=TRUE)
lines(x=c(0, 1), y=c(0, 1), col="black", lwd=1)

auc = performance(pred, "auc")
auc = unlist(auc@y.values)
auc

在此处输入图像描述

这些讨论中不包括重要的考虑因素。上面讨论的过程会引入不适当的阈值,并利用通过选择错误的特征并给予错误的权重来优化的不正确的准确度评分规则(比例)。

连续预测的二分法与最优决策理论背道而驰。ROC 曲线没有提供可操作的见解。在没有研究人员检查其好处的情况下,它们已成为强制性的。它们具有非常大的墨水:信息比。

最佳决策不考虑“正面”和“负面”,而是考虑结果的估计概率。效用/成本/损失函数在 ROC 构建中不起作用,因此 ROC 无用,用于将风险估计转换为最佳(例如,最低预期损失)决策。

统计模型的目标通常是做出预测,分析师应该经常停在那里,因为分析师可能不知道损失函数。无偏见验证的预测的关键组成部分(例如,使用引导程序)是预测歧视(衡量这一点的一种半好的方法是一致性概率,它恰好等于 ROC 下的面积,但如果你不这样做,则可以更容易理解't绘制 ROC) 和校准曲线。如果您使用绝对规模的预测,校准验证确实非常必要。

有关更多信息,请参阅Biostatistics for Biomedical Research和其他章节中的信息丢失章节。

AUC 是曲线下面积的缩写。它用于分类分析,以确定所使用的模型中的哪一个能最好地预测类别。

ROC 曲线就是其应用的一个例子。在这里,真阳性率与假阳性率作图。下面是一个例子。模型的 AUC 越接近 1,越好。因此,AUC 较高的模型优于 AUC 较低的模型。

请注意,除了 ROC 曲线之外,还有其他方法,但它们也与真阳性率和假阳性率有关,例如 Precision-recall、F1-Score 或 Lorenz 曲线。

                                            ROC 曲线示例