模型准确率很高,却漏掉多数关键目标;另一模型召回率高,却带来大量误报。只报一个分数,难以判断实际效果。读完本文,你可以核对混淆矩阵、计算精确率与召回率,并区分分类、检测和分割的评估对象。
我们先用十个二分类样本计算指标,再用纯 Python 检验阈值变化。随后结合检测框交并比,说明类别正确不等于定位准确。通过正常和边界情况的对照,你可以建立基本的误差分析顺序,避免混用不同任务的指标。
文章目录
- 准确率很高,为什么关键目标仍被漏掉
- 核心概念与工作机制
- 精确率、召回率和 F1
- 从分类扩展到检测和分割
- 指标和错误代价的区别
- 最小示例
- 环境与准备
- 工作流程图
- 完整代码或操作命令
- 运行步骤与预期输出
- 验证结果
- 常见误区与适用边界
- 总结
准确率很高,为什么关键目标仍被漏掉
假设十张图中只有两张包含目标。模型把所有图都判断为“无目标”,准确率仍有 80%,但目标召回率为 0。这说明评估必须看类别分布、错误类型和业务代价,不能只挑一个漂亮数字。
| 实际情况 | 预测为目标 | 预测为无目标 |
|---|---|---|
| 真实有目标 | TP,真正例 | FN,假负例或漏报 |
| 真实无目标 | FP,假正例或误报 | TN,真负例 |
核心概念与工作机制
精确率、召回率和 F1
精确率Precision = TP / (TP + FP),关注预测为正的结果有多少是真的;召回率Recall = TP / (TP + FN),关注真实为正的样本找回多少;F1 = 2PR / (P + R),用于概括二者的平衡。分母为零时要明确处理口径,不能把未定义指标偷偷当成良好成绩。
从分类扩展到检测和分割
分类主要比较图像级类别。检测还要比较预测框与真实框的位置,常用交并比 IoU 判断定位是否达到设定阈值;一个框即便类别对了,定位太