机器学习中核心评估指标(准确率、精确率、召回率、F1分数)
混淆矩阵
混淆矩阵是一个表格,用于总结分类模型在测试集上的预测结果,特别是当真实标签已知时。它将预测结果分为四种情况(记忆:实际和预测一致为True,预测为正是Positive):
真正例: 实际为正类,预测也为正类 (
True Positive, TP
)假正例: 实际为负类,但预测为正类 (
False Positive, FP
)假反例: 实际为正类,但预测为负类 (
False Negative, FN
)真反例: 实际为负类,预测也为负类 (
True Negative, TN
)
真实标签 \ 预测标签 | 正类 (Positive) | 负类 (Negative) |
---|---|---|
正类 (Positive) | TP | FN |
负类 (Negative) | FP | TN |
准确率(Accuracy)
定义: 模型预测正确(TP+TN)的样本数占总样本数(TP+FP+FN+TN)的比例。最直观的指标。
计算公式:
Accuracy = (TP + TN) / (TP + FP + FN + TN)
意义:
衡量模型整体预测正确的比例。
优点: 简单易懂。
缺点: 在数据不平衡时容易产生误导。例如,在疾病检测中,健康人(负类)占99%,病人(正类)占1%。一个将所有样本都预测为健康的模型,准确率也能达到99%,但这个模型对于检测病人是完全无效的。此时需要更细致的指标。
适用场景: 当正负类样本比例大致相同时,准确率是一个合理的指标。
精确率(Precision)
定义: 在模型预测为正类(TP+FP)的样本中,实际也是正类(TP)的样本所占的比例。衡量预测的“精准度”或“可靠性”。
计算公式:
Precision = TP / (TP + FP)
意义:
关注的是预测结果的质量。高精确率意味着模型预测为正类的样本中,误报(FP)的比例低。
核心问题: 当模型说某个样本是正类时,这个判断有多可信?
适用场景: 当需要尽量减少“假警报”或“误报”时非常重要。
垃圾邮件检测: 将正常邮件误判为垃圾邮件(FP)很糟糕。需要高精确率,确保标记为垃圾邮件的邮件确实是垃圾邮件。
推荐系统: 向用户推荐的商品,希望推荐列表中的商品用户确实感兴趣(高TP),避免推荐不相关的商品(低FP)。
召回率(Recall)
定义: 在实际为正类(TP+FN)的样本中,被模型正确预测为正类(TP)的样本所占的比例。衡量模型的“查全率”或“覆盖度”。
计算公式:
Recall = TP / (TP + FN)
意义:
关注的是模型找出所有正类样本的能力。高召回率意味着模型漏报(FN)的比例低。
核心问题: 在所有实际的正类样本中,模型成功找出了多少?
适用场景: 当需要尽量减少“漏检”或“错过”正类样本时非常重要。
疾病诊断: 漏掉一个真正的病人(FN)后果可能很严重。需要高召回率,尽可能找出所有患病者。
欺诈检测: 漏掉一个欺诈交易(FN)会导致损失。需要高召回率,尽可能识别出所有欺诈行为。
信息检索: 希望搜索引擎返回的结果尽可能包含所有相关的文档(高TP),避免遗漏(FN)。
F1 分数(F1 Score)
定义: 精确率和召回率的调和平均数(倒数平均数:总体各统计变量倒数的算术平均数的倒数)。旨在用一个分数综合反映模型的精确率和召回率。1/((1/Precision+1/Recall)/2).
计算公式:
F1 Score = 2 * (Precision * Recall) / (Precision + Recall)
调和平均数的特点:更重视较小值。只有当精确率和召回率都高时,F1分数才会高。
意义:
提供一个在精确率和召回率之间取得平衡的单一指标。
特别适用于数据不平衡的情况,或者当同时关注精确率和召回率且需要找到一个折中点时。
比简单的算术平均更能反映模型的整体性能(当精确率和召回率差异较大时)。
适用场景:
当需要同时考虑精确率和召回率,且没有明确偏向哪一个更重要时。
评估在不平衡数据集上模型的综合性能。
比较不同模型时的一个常用综合指标。