分类:准确率、召回率、精确率和相关指标

真正例、假正例、真负例和假负例可用于计算多种有用的指标来评估模型。哪些评估指标最有意义取决于具体模型和具体任务、不同错误分类的成本,以及数据集是平衡的还是不平衡的。

此部分中的所有指标均以单个固定阈值计算,并且会随着阈值的变化而变化。用户通常会调整阈值来优化其中一项指标。

准确率

准确率是指所有正确分类(无论是正类别还是负类别)所占的比例。其数学定义如下:

\[\text{Accuracy} = \frac{\text{correct classifications}}{\text{total classifications}} = \frac{TP+TN}{TP+TN+FP+FN}\]

在垃圾邮件分类示例中,准确率衡量的是所有正确分类的电子邮件所占的比例

理想的模型不会出现假正例和假负例,因此准确率为 1.0 或 100%。

由于准确率纳入了混淆矩阵中的所有四种结果(真阳性、假阳性、真阴性和假阴性),因此在给定平衡的数据集(两个类别中的样本数量相似)的情况下,准确率可以作为模型质量的粗略衡量指标。因此,对于执行通用或未指定任务的通用或未指定模型,它通常是默认的评估指标。

不过,如果数据集不平衡,或者一种错误(假反例或假正例)的代价高于另一种错误,这在大多数实际应用中都是如此,那么最好优化其他指标之一。

对于严重不平衡的数据集(其中一个类别的出现频率非常低,例如仅占 1%),即使模型 100% 的时间都预测为负类别,其准确率也会达到 99%,但实际上毫无用处。

召回率或真正例率

真正例率 (TPR),即所有实际正例中被正确分类为正例的比例,也称为召回率

从数学角度来看,召回率的定义如下:

\[\text{Recall (or TPR)} = \frac{\text{correctly classified actual positives}}{\text{all actual positives}} = \frac{TP}{TP+FN}\]

假负例是指被错误分类为负例的实际正例,因此会出现在分母中。在垃圾邮件分类示例中,召回率衡量的是被正确归类为垃圾邮件的垃圾邮件所占的比例。因此,召回率的另一个名称是检测概率:它回答了“此模型检测到的垃圾邮件占垃圾邮件总数的百分比是多少?”这一问题。

假设有一个完美模型,它不会出现假负例,因此召回率 (TPR) 为 1.0,也就是说,检测率为 100%。

在实际正例数量非常少的不平衡数据集中,召回率比准确率更有意义,因为它可以衡量模型正确识别所有正例的能力。对于疾病预测等应用,正确识别阳性病例至关重要。假负例的后果通常比假正例更严重。如需查看比较召回率和准确率指标的具体示例,请参阅召回率定义中的注释。

假正例率

假正例率 (FPR) 是指所有实际负例中被错误分类为正例的比例,也称为误报概率。其数学定义如下:

\[\text{FPR} = \frac{\text{incorrectly classified actual negatives}} {\text{all actual negatives}} = \frac{FP}{FP+TN}\]

假正例是指被错误分类的实际负例,因此会出现在分母中。在垃圾邮件分类示例中,假正例率衡量的是被错误分类为垃圾邮件的合法电子邮件所占的比例,即模型的误报率。

理想的模型不会出现假正例,因此 FPR 为 0.0,也就是说,误报率为 0%。

对于不平衡的数据集,FPR 通常比准确率更能提供信息。不过,如果实际负例数量非常少,则 FPR 可能不是理想的选择,因为它波动性较大。例如,如果数据集中只有 4 个实际负例,那么一次错误分类会导致 FPR 达到 25%,而第二次错误分类会导致 FPR 跃升至 50%。在这种情况下,精确率(将在下文中介绍)可能是一个更稳定的指标,可用于评估假正例的影响。

精确率

精确率是指模型的所有正类别分类中实际为正类别的比例。其数学定义如下:

\[\text{Precision} = \frac{\text{correctly classified actual positives}} {\text{everything classified as positive}} = \frac{TP}{TP+FP}\]

在垃圾邮件分类示例中,精确率衡量的是被归类为垃圾邮件的电子邮件中实际为垃圾邮件的比例

假设有一个完美模型,它不会产生任何假正例,因此精确率为 1.0。

在实际正例数量非常少的不平衡数据集中(例如总共只有 1-2 个正例),精确率作为一种指标的意义和实用性会降低。

假正例越少,精确率越高;假负例越少,召回率越高。但如上一部分所示,提高分类阈值往往会减少假正例的数量并增加假负例的数量,而降低阈值则会产生相反的效果。因此,精确率和召回率通常呈反比关系,即提高其中一个指标会降低另一个指标。

亲自尝试:

指标选择和权衡

在评估模型和选择阈值时,您选择优先考虑的指标取决于特定问题的成本、收益和风险。在垃圾邮件分类示例中,通常需要优先考虑召回率(捕获所有垃圾邮件)或精确率(尽量确保标记为垃圾邮件的电子邮件确实是垃圾邮件),或者在达到一定最低准确率水平的前提下,在两者之间取得某种平衡。

指标 指南
准确率

可作为平衡数据集的模型训练进度/收敛情况的粗略指标。

对于模型效果,请仅与其他指标结合使用。

避免用于不平衡的数据集。考虑使用其他指标。

召回率
(真正例率)
当假负例的代价高于假正例时使用。
假正例率 当假正例的代价高于假负例时使用。
精确率 当正预测的准确性非常重要时使用。

练习:检查您的理解情况

某模型输出 5 个 TP、6 个 TN、3 个 FP 和 2 个 FN。计算召回率。
0.714
召回率的计算公式为 \(\frac{TP}{TP+FN}=\frac{5}{7}\)。
0.455
召回率考虑的是所有实际正例,而不是所有正确分类。召回率的公式为 \(\frac{TP}{TP+FN}\)。
0.625
召回率考虑的是所有实际正例,而不是所有正例分类。召回率的公式为 \(\frac{TP}{TP+FN}\)
某个模型输出 3 个 TP、4 个 TN、2 个 FP 和 1 个 FN。计算精确率。
0.6
精确率的计算公式为 \(\frac{TP}{TP+FP}=\frac{3}{5}\)。
0.75
精确率考虑的是所有正例分类,而不是所有实际正例。精确率的计算公式为 \(\frac{TP}{TP+FP}\)。
0.429
精确率考虑的是所有正例分类,而不是所有正确分类。精确率的计算公式为 \(\frac{TP}{TP+FP}\)
您正在构建一个二元分类器,用于检查昆虫诱捕器的照片中是否出现危险的入侵物种。如果模型检测到该物种,值班的昆虫学家(昆虫科学家)会收到通知。尽早发现这种昆虫对于防止虫害至关重要。误报(假正例)很容易处理:昆虫学家看到照片被错误分类,并将其标记为错误分类。假设准确率达到可接受的水平,该模型应针对哪个指标进行优化?
召回率
在这种情况下,假正例 (FP) 的成本较低,而假负例的成本很高,因此最好尽可能提高召回率,即检测概率。
假正例率 (FPR)
在这种情况下,误报 (FP) 的成本较低。试图最大限度地减少误报,但可能会漏掉实际的正例,这毫无意义。
精确率
在这种情况下,误报 (FP) 的危害并不大,因此尝试提高正类别的正确性没有意义。