【机器学习】Understanding AUC - ROC Curve

Posted by ShawnD on May 14, 2022

在机器学习中,性能度量是一项必不可少的任务。所以当涉及到分类问题时,我们可以依靠AUC - ROC曲线。当我们需要检查或可视化多类分类问题的性能时,我们使用AUC (Area Under the Curve) ROC (Receiver Operating Characteristics)曲线。它是检验任何分类模型性能最重要的评价指标之一。也可以写成AUROC (Area Under the Receiver Operating Characteristics)。

本博客旨在回答以下问题:

  • AUC - ROC曲线是什么?
  • 定义AUC和ROC曲线使用的术语。
  • 如何推测模型的性能?
  • 敏感性(Sensitivity)、特异性(Specificity)、FPR和阈值的关系。
  • multiclass 模型如何使用 AUC - ROC 曲线

What is the AUC - ROC Curve?

AUC - ROC曲线是对不同阈值设置下的分类问题的性能度量。ROC是概率曲线,AUC表示可分性的程度或测度。它告诉模型能够在多大程度上区分类。AUC越高,模型越能预测0类为0,1类为1。由此类推,AUC越高,该模型越能区分患者是否有疾病。

ROC曲线用 TPR 和 FPR 绘制,其中 TPR 在 y 轴上,FPR 在 x 轴上。

定义在 AUC and ROC Curve 中使用的术语

TPR (True Positive Rate) / Recall /Sensitivity

\[TPR/Recall/Sensitivity = \frac{TP}{TP + FN}\]

Specificity

\[Specificity = \frac{TN}{TN + FP}\]

FPR

\[FPR = 1 - Specificity = \frac{FP}{TN + FP}\]

如何推测模型的性能?

一个优秀的模型的AUC接近于1,这意味着它具有很好的可分性。差的模型的AUC接近于0,这意味着它的可分性最差。事实上,这意味着它是对结果的回报。它把 0 看成 1,把 1 看成 0。当AUC为 0.5 时,表示该模型完全没有分类能力。

让我们来解释一下上面的陈述。

我们知道,ROC是一条概率曲线。让我们画出这些概率的分布。

注:红色分布曲线为 positive class (有疾病),绿色分布曲线为 negative class (无疾病)。

这是一个理想的情况。当两条曲线完全不重叠时,均值模型具有理想的可分性测度。它完全能够区分 positive class 和 negative class。

当两个分布重叠时,我们引入 type 1 和 type 2 错误。根据阈值,我们可以使它们最小化或最大化。当AUC 为 0.7时,意味着模型能够区分正类和负类的几率为70%。

当AUC约为0.5时,模型没有区分正类和负类的能力。这是最糟糕的情况。

当AUC近似为0时,模型实际上是在对类进行互换操作。这意味着这个模型预测了一个 negative class 会变成 positive class,反之亦然。

敏感性(Sensitivity)、特异性(Specificity)、FPR和阈值(Threshold)的关系。

敏感性(Sensitivity)和特异性(Specificity)成反比。所以当我们提高灵敏度时,特异性就会降低,反之亦然。

当我们降低阈值时,我们得到更多的正值,从而提高了敏感性,降低了特异性。

同样,当我们提高阈值时,我们得到更多的负值,因此我们得到更高的特异性和更低的敏感性。

我们知道 FPR 是 1 - specificity。所以当我们增加 TPR 时,FPR 也会增加,反之亦然。

multi-class 模型如何使用AUC ROC曲线?

在 multi-class 模型中,我们可以使用 One vs ALL 方法绘制 N 个类的 N 条 AUC ROC 曲线。例如,如果你有三个类别,分别叫做 X, Y,和 Z,你将有一个 X classified against Y and Z 的 ROC,另一个 Y classified against X and Z 的 ROC,和第三个 Z classified against Y and X 的 ROC。