分类器 ROC 曲线解读

在这篇博文中,我将解释ROC曲线展示了什么,AUC的含义,以及如何正确解读和使用它们。

分类器 ROC 曲线解读
AI模型价格对比 | AI工具导航 | ONNX模型库 | Vibe Coding教程 | PLC在线仿真器 | Tripo 3D | Meshy AI | ElevenLabs | KlingAI | ArtSpace | Phot.AI | InVideo

ROC曲线和AUC分数是评估二分类模型时不可或缺的两个关键概念。

在这篇博文中,我将解释ROC曲线展示了什么,AUC的含义,以及如何正确解读和使用它们。

1、基本设置

想象你开发了一个新的AI模型,可以根据某些输入特征判断患者是生病还是健康。

这是一个二分类模型。我们向模型提供必要的输入特征,它计算出患者生病的概率。

一个著名的二分类模型是逻辑回归。简而言之,逻辑回归是一个线性模型,它计算输入特征的加权和,并使用sigmoid函数将其转换为两个类别之一的概率。

为了将这个概率转化为具体的决策,我们定义了一个阈值,也称为决策边界。这是我们将数据点分类为阳性的值。

虽然"阳性"听起来不错,但在这种情况下,它意味着患者生病了。通常,这个阈值设置为0.5,即50%。所有预测概率高于此决策阈值的案例被分类为"生病",低于此的被分类为"健康"。

然而,这个决策阈值并非一成不变。如果我们降低阈值,我们会检测到更多的生病患者,但也会错误地将更多健康患者分类为生病,引起不必要的担忧。另一方面,如果我们提高阈值,我们会触发更少的警报,但会漏掉更多真正生病的患者。

正如我们所见,选择合适的决策阈值并不容易。为了系统地分析这种权衡并比较不同阈值,我们使用ROC曲线。

2、ROC曲线简单解释

ROC代表接收者操作特征(Receiver Operating Characteristic)。ROC曲线展示了二分类模型在所有可能的决策阈值下区分两个类别的能力。

在这条曲线上,两个量相互绘制。

x轴代表假阳性率(FPR)。假阳性率描述了多少实际上为阴性的案例被错误地分类为阳性。因此,假阳性率衡量模型的误报率。

y轴代表真阳性率(TPR),也称为召回率或灵敏度。真阳性率描述模型正确识别了多少实际为阳性的案例。因此,它衡量模型在真正阳性案例中的检测率。

为了更好地理解这些术语,回顾混淆矩阵会有所帮助——这是它们定义的基础。

ROC曲线通过计算不同决策阈值下的假阳性率和真阳性率来创建。因此,ROC曲线上的每个点对应一个特定的决策阈值及其相关的FPR(x值)和TPR(y值)对。

3、计算ROC曲线

为了真正理解ROC曲线并在以后自信地解读它,我们现在用一个简单的示例数据集来计算它。

这个数据集由七个数据点组成,即七个患者。在这七个患者中,三个生病,四个健康。此外,对于每个患者,我们有模型预测的生病概率。

让我们从阈值为1(即100%)开始。在这种情况下,我们的模型将所有患者分类为健康,因为没有人的预测概率高于100%。这意味着模型没有预测任何人生病。

这个预测对所有实际健康的患者是正确的。然而,对所有真正生病的患者,这个预测是错误的。基于这个分类,我们现在计算真阳性率(TPR)和假阳性率(FPR)。

明确"阳性"的定义很重要。在我们的例子中,"阳性"意味着患者生病了。换句话说,疾病存在。起初这似乎不直观,因为在日常语言中,我们经常将"阳性"与好事联系在一起。然而,在分类的背景下,"阳性"仅仅指的是我们想要预测的目标类别或事件。

计算完这两个指标后,我们将结果点绘制在ROC曲线上。然后我们降低阈值,直到两个值(TPR或FPR)中至少有一个发生变化。

在阈值为0.95时,第一个生病的患者被正确识别。结果,真阳性率增加到1/3。假阳性率最初保持为0,因为没有健康患者被错误分类为生病。

如果我们继续降低决策阈值,在某个点上,第一个健康患者将被分类为生病。在那一刻,假阳性率首次增加。

我们逐步重复这个过程。我们降低阈值,重新计算TPR和FPR,并将结果点绘制在坐标系中。所有这些点的集合形成了ROC曲线。

当我们最终达到阈值为0时,所有患者都被分类为生病。在这种极端情况下,真阳性率(TPR)为1,因为所有真正生病的患者都被正确识别为生病。同时,假阳性率(FPR)也为1,因为所有真正健康的患者都被错误分类为生病。

因此,我们越试图检测每个生病患者(高灵敏度),就有越多的健康患者被错误分类为生病。这在两个指标之间创建了一个权衡。ROC曲线直观地展示了这种权衡。

理想情况下,曲线会指向图左上角的点(0, 1)。这样的点对应一个完美的分类模型,它检测所有生病患者,且从不错误标记健康患者。然而,在现实应用中,这极为罕见。

如果ROC曲线明显在对角线以下并向右下角移动,那么类别标签很可能被交换了。在这种情况下,模型系统地预测了真实类别的相反结果。它主要将健康患者分类为生病,将生病患者分类为健康。有趣的是,如果我们简单地反转预测(即交换标签),模型会突然变得非常好,因为ROC曲线将位于对角线上方。

4、AUC简单解释

由于ROC曲线的形状提供了大量关于分类模型性能的信息,因此基于它开发了额外的评估指标。我说的就是AUC。

AUC代表曲线下面积(Area Under the Curve),顾名思义,指的是ROC曲线下的面积。它将ROC曲线总结为一个数字,衡量模型整体上区分阳性和阴性的能力。

AUC通常在0到1.0之间取值。

  • AUC为0.5对应随机模型。
  • AUC为1.0对应完美模型。
  • AUC低于0.5表明模型系统性地错误分类(例如,由于标签交换)。

AUC为0.75意味着在75%的情况下,模型为随机选择的阳性案例(例如,生病的患者)分配比随机选择的阴性案例(例如,健康的患者)更高的分数。

换句话说,AUC衡量模型在所有可能阈值下区分两个类别的能力。因此,它不仅评估单个阈值,还评估模型的整体判别能力。

5、结束语

总结一下,ROC曲线使真阳性率(TPR)和假阳性率(FPR)之间的权衡可视化,而AUC值将这些信息压缩为一个数字。

有了这些知识,你现在可以评估二分类模型,比较它们,并选择最适合你特定用例的模型。


原文链接:How ROC Curves Reveal What Your Classifier Is Really Doing

汇智网翻译整理,转载请标明出处