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):真实为负类,模型也预测为负类。
关键理解:混淆矩阵的四个格子涵盖了所有预测结果,后续所有指标都基于这四个数值计算。
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 是否稳定,再结合业务成本做最终决策。
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,整体表现良好,召回率略高于精确率,说明模型更倾向于覆盖正类。