【AI知识点】召回率、精确率、准确率、F1-score和混淆矩阵
AI知识点总结:【AI知识点】
AI论文精读、项目、思考:【AI修炼之路】
召回率、精确率、准确率、F1-score和混淆矩阵,这些是评估一个分类模型性能的常用指标,我们可以通过一个简单的二分类问题来说明它们的区别。这个例子是关于邮件垃圾分类的场景,假设我们要训练一个分类器来区分电子邮件是否是垃圾邮件。
假设的分类结果:
- 总共分类了 100 封邮件。
- 其中,实际垃圾邮件有 20 封,非垃圾邮件有 80 封。
- 下面这个混淆矩阵(Confusion Matrix) 展示了分类模型的四种预测结果:
实际垃圾邮件 (Positive) | 实际非垃圾邮件 (Negative) | |
---|---|---|
预测为垃圾邮件 | 15 (TP) | 10 (FP) |
预测为非垃圾邮件 | 5 (FN) | 70 (TN) |
定义这些术语:
- 真正类(TP):模型正确预测为垃圾邮件的邮件数。这里是 15 封。(阳性)
- 假正类(FP):模型错误地将非垃圾邮件预测为垃圾邮件的邮件数。这里是 10 封。(假阳性,误报,误诊)
- 假负类(FN):模型错误地将垃圾邮件预测为非垃圾邮件的邮件数。这里是 5 封。(假阴性,漏报,漏诊)
- 真负类(TN):模型正确预测为非垃圾邮件的邮件数。这里是 70 封。(阴性)
各个指标的计算
1. 召回率(Recall)
- 召回率衡量的是有多少真正的垃圾邮件被模型识别出来:
Recall = TP TP + FN = 15 15 + 5 = 0.75 \text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} = \frac{15}{15 + 5} = 0.75 Recall=TP+FNTP=15+515=0.75 - 解释:真正的垃圾邮件有20封,其中15封被模型识别出来了,5封没有被识别出来(漏报),所以召回率为 0.75。
- 适用场景:适合于关心漏报(假阴性) 的场景,比如:
- 医疗诊断,漏诊一个病人可能造成严重后果。
- 安全系统,漏检一个危险品会有高风险。
2. 精确率(Precision)
- 精确率衡量的是模型预测为垃圾邮件的邮件中,实际为垃圾邮件的比例:
Precision = TP TP + FP = 15 15 + 10 = 0.60 \text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}} = \frac{15}{15 + 10} = 0.60 Precision=TP+FPTP=15+1015=0.60 - 解释:模型预测了25封为垃圾邮件,但其中只有15封是真的垃圾邮件,其他10封是误报,所以精确率为 0.60。
- 适用场景:适合于关心误报(假阳性) 的场景,比如:
- 垃圾邮件过滤系统,误报一封正常邮件为垃圾邮件可能影响用户体验。
- 广告点击率预测,误报一条广告点击可能增加广告主的成本。
3. 准确率(Accuracy)
- 准确率衡量的是模型所有预测中的正确率(包括正确识别的垃圾邮件和非垃圾邮件):
Accuracy = TP + TN TP + TN + FP + FN = 15 + 70 15 + 70 + 10 + 5 = 0.85 \text{Accuracy} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{TN} + \text{FP} + \text{FN}} = \frac{15 + 70}{15 + 70 + 10 + 5} = 0.85 Accuracy=TP+TN+FP+FNTP+TN=15+70+10+515+70=0.85 - 解释:准确率为 0.85,说明模型在 100 封邮件中有 85 封邮件分类正确。
- 适用场景:适合用于数据集类别分布平衡且每一类都同等重要的情况。
- 注意:但对于类别不平衡问题,它可能会误导模型的真实表现。比如如果 90% 的邮件是非垃圾邮件,模型可以只预测所有邮件为非垃圾邮件,准确率高达 90%,但这并不意味着模型对垃圾邮件有良好的识别能力。因此,准确率并不是衡量模型的最好指标。
4. F1-score
- F1-score 是精确率和召回率的调和平均数,兼顾两者的平衡:
F 1 = 2 × Precision × Recall Precision + Recall = 2 × 0.60 × 0.75 0.60 + 0.75 = 0.6667 F1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} = 2 \times \frac{0.60 \times 0.75}{0.60 + 0.75} = 0.6667 F1=2×Precision+RecallPrecision×Recall=2×0.60+0.750.60×0.75=0.6667 - 解释:F1-score 为 0.67,表示在平衡精确率和召回率的情况下,模型的综合性能。
- 适用场景:适合在需要平衡精确率和召回率的情况下使用,例如当我们需要一个较为综合的指标来评估模型时。