尽管准确率能让我们大致了解模型判断正确的频率,但它并不能说明全部情况。设想一个垃圾邮件过滤器。如果实际只有1%的邮件是垃圾邮件,那么一个总是预测“不是垃圾邮件”的模型将达到99%的准确率!这听起来不错,但它完全未能完成其主要工作:捕获垃圾邮件。为了更好地理解,我们需要将模型的预测细分为更具体的类别。对于分类任务,特别是二元分类(只有两种可能结果,例如“垃圾邮件”与“非垃圾邮件”或“疾病”与“健康”),我们通过将预测结果与实际真实值进行比较来分析。我们通常将一个类别指定为“正例”,另一个指定为“反例”。哪个类别是正例通常由问题所关注的点决定(例如,检测垃圾邮件,识别疾病)。基于这种比较,每个预测都属于以下四种类别之一:真正例 (TP)这些是模型正确预测为正例的情况。实际: 正例预测: 正例示例: 一封是垃圾邮件的电子邮件被过滤器正确识别为垃圾邮件。假正例 (FP)这些是当实际类别为反例时,模型错误地预测为正例的情况。这有时被称为“第一类错误”。实际: 反例预测: 正例示例: 一封不是垃圾邮件的重要电子邮件被错误地识别为垃圾邮件,并可能被发送到垃圾文件夹。真反例 (TN)这些是模型正确预测为反例的情况。实际: 反例预测: 反例示例: 一封不是垃圾邮件的电子邮件被正确识别为非垃圾邮件。假反例 (FN)这些是当实际类别为正例时,模型错误地预测为反例的情况。这有时被称为“第二类错误”。实际: 正例预测: 反例示例: 一封是垃圾邮件的电子邮件被错误地识别为非垃圾邮件,并进入收件箱。结果分析我们可以用表格形式总结这四种可能性,这将构成了我们接下来将讨论的混淆矩阵的根本:预测: 正例预测: 反例实际: 正例真正例 (TP)假反例 (FN)实际: 反例假正例 (FP)真反例 (TN)考虑一下您的模型做出的预测总数。每个预测都属于这四个类别(TP、FP、TN、FN)之一。因此,实例总数为:$$ 总数 = TP + FP + TN + FN $$我们之前讨论过的准确率也可以用这些术语来定义:$$ 准确率 = \frac{TP + TN}{TP + FP + TN + FN} $$这表明准确率只是衡量了所有预测中正确预测(包括正例和反例)的比例。将预测细分为这四个类别很重要,因为不同类型的错误通常会带来非常不同的后果。在我们的垃圾邮件示例中:一个假正例 (FP) 意味着一封合法邮件可能被忽略。这可能令人烦恼,甚至引发问题。一个假反例 (FN) 意味着一封垃圾邮件漏过。这同样令人烦恼。在其他情境中,成本不平衡可能更加严重。考虑一个预测严重疾病的医疗诊断模型(正例类别 = 疾病):一个假正例 (FP) 意味着健康的病人被告知可能患有疾病,从而导致焦虑和进一步的检查(这可能费用高昂或具有侵入性)。一个假反例 (FN) 意味着患有疾病的病人被告知他们是健康的,这可能延迟挽救生命的治疗。显然,根据应用的不同,我们可能希望优先减少某种类型的错误。掌握TP、FP、TN和FN有助于我们跳出单纯的准确率,选择像精确率和召回率(接下来讨论)这样更能体现我们分类问题具体目标和限制的指标。