2. 评估指标基础:混淆矩阵、准确率、精确率、召回率、F1-score 的定义与计算

在模型效果评估中,混淆矩阵是几乎所有分类指标的计算基础。通过混淆矩阵,我们可以系统性地计算准确率、精确率、召回率和 F1-score 等核心指标。本节将逐一拆解这些指标的定义、计算公式与适用场景。

2.1 混淆矩阵(Confusion Matrix)

混淆矩阵是一个 2×2 的表格,用于对比模型预测结果与真实标签。对于二分类问题,通常将关注类别称为“正类”(Positive),另一类称为“负类”(Negative)。

真实为正类 真实为负类
预测为正类 TP(真正例) FP(假正例)
预测为负类 FN(假负例) TN(真负例)
  • TP(True Positive):真实为正类,模型也预测为正类。
  • FP(False Positive):真实为负类,模型错误预测为正类(误报)。
  • FN(False Negative):真实为正类,模型错误预测为负类(漏报)。
  • TN(True Negative):真实为负类,模型也预测为负类。
关键理解:混淆矩阵的四个格子涵盖了所有预测结果,后续所有指标都基于这四个数值计算。
混淆矩阵结构图 预测为正类 预测为负类 真实为正类 真实为负类 TP 真正例 FP 假正例(误报) FN 假负例(漏报) TN 真负例 绿色 = 预测正确,红色 = 预测错误 对角线(TP + TN)为正确预测总数

2.2 准确率(Accuracy)

准确率是最直观的指标,表示模型预测正确的样本占总样本的比例。

Accuracy = (TP + TN) / (TP + FP + FN + TN)

适用场景:当正负类样本数量大致均衡时,准确率能有效反映模型整体表现。

注意:在类别不平衡场景下(如欺诈检测中正类仅占 1%),模型即使全部预测为负类也能获得 99% 的准确率,但此时模型完全失效。因此,准确率不能单独作为不平衡问题的评估指标。

2.3 精确率(Precision)

精确率衡量模型预测为正类的样本中,有多少是真正的正类。它关注的是“预测结果的可靠性”。

Precision = TP / (TP + FP)

适用场景:当 FP 的代价很高时(如垃圾邮件过滤中误将正常邮件判为垃圾邮件),需要优先提升精确率。

2.4 召回率(Recall)

召回率衡量所有真实正类样本中,模型成功找出了多少。它关注的是“对正类的覆盖能力”。

Recall = TP / (TP + FN)

适用场景:当 FN 的代价很高时(如癌症筛查中漏诊患者),需要优先提升召回率。

2.5 F1-score

F1-score 是精确率和召回率的调和平均数,综合反映模型的精确性与覆盖能力。

F1 = 2 × (Precision × Recall) / (Precision + Recall)

特性:F1-score 在精确率和召回率之间取得平衡,当两者差距较大时,F1 会偏向较小的那个值。

实用建议:在 A/B 测试中,如果模型上线后精确率和召回率出现此消彼长的情况,应优先关注 F1-score 是否稳定,再结合业务成本做最终决策。
核心指标计算关系图 混淆矩阵输入:TP、FP、FN、TN 从模型预测结果与真实标签统计得到 精确率 TP / (TP + FP) 召回率 TP / (TP + FN) 准确率 (TP+TN) / 总数 F1-score 2 × (P × R) / (P + R) F1-score 是精确率与召回率的调和平均数 当两者差距较大时,F1 偏向较小的值 准确率作为独立指标,不参与 F1 计算

2.6 指标对比与选择指南

指标 关注点 计算公式 适用场景
准确率 整体正确率 (TP+TN) / 总数 类别均衡、整体评估
精确率 预测为正类的可靠性 TP / (TP+FP) 误报代价高(如垃圾邮件)
召回率 对正类的覆盖能力 TP / (TP+FN) 漏报代价高(如疾病筛查)
F1-score 精确率与召回率的平衡 2PR / (P+R) 需要综合评估、类别不平衡

2.7 计算示例

假设一个二分类模型在测试集上的混淆矩阵如下:

真实为正类 真实为负类
预测为正类 TP = 80 FP = 20
预测为负类 FN = 10 TN = 90

计算过程:

准确率 = (80 + 90) / (80 + 20 + 10 + 90) = 170 / 200 = 0.85
精确率 = 80 / (80 + 20) = 80 / 100 = 0.80
召回率 = 80 / (80 + 10) = 80 / 90 ≈ 0.8889
F1-score = 2 × (0.80 × 0.8889) / (0.80 + 0.8889) ≈ 1.4222 / 1.6889 ≈ 0.8421
解读:该模型准确率 85%,精确率 80%(预测为正类时 80% 正确),召回率约 88.9%(真实正类中找出了 88.9%),F1-score 约 0.842,整体表现良好,召回率略高于精确率,说明模型更倾向于覆盖正类。