温故而知新可以为师矣一、参考资料分类问题的评价指标多分类【Precision、 micro-P、macro-P】、【Recall、micro-R、macro-R】、【F1、 micro-F1、macro-F1】目标检测评估指标mAP从Precision,Recall,到AP50-95【未完待续】利用mAP评估目标检测模型万字长文精解目标检测中的TP、FP、FN、TN、Precision、Recall 、 F1 Score、AP、mAP与AR 。附代码实现。AP和mAP 计算sklearn.metrics.average_precision_score()精准召回和 F-measures精确率、准确率、召回率、F1 值的区分与记忆方法-CSDN博客二、精确率、准确率、召回率和 F1 值在机器学习和数据挖掘领域精确率、准确率、召回率和 F1 值是评估模型性能的重要指标。混淆矩阵在理解这些指标前需先了解混淆矩阵它是计算各指标的基础。以二分类问题为例混淆矩阵包含四个类别这些类别构成了后续所有评估指标计算的基石真正例True PositiveTP模型预测为正例实际也为正例。例如在垃圾邮件分类中模型判断某封邮件是垃圾邮件且该邮件确实是垃圾邮件这种情况就属于真正例。假正例False PositiveFP模型预测为正例但实际为负例。继续以垃圾邮件分类来说若模型将一封正常邮件误判为垃圾邮件这封邮件就被统计为假正例。真负例True NegativeTN模型预测为负例实际也为负例。即模型判断某封邮件不是垃圾邮件且该邮件确实为正常邮件这便是真负例。假负例False NegativeFN模型预测为负例但实际为正例。比如模型把一封垃圾邮件错误地判断为正常邮件该邮件就属于假负例。可以通过以下表格更直观地呈现混淆矩阵的结构预测结果 \ 实际结果正例负例正例真正例TP假正例FP负例假负例FN真负例TN精确率Precision精确率表示模型预测为正例的样本中真正为正例的比例反映模型预测正例的准确性。其计算公式为P r e c i s i o n T P T P F P Precision \frac{TP}{TP FP}PrecisionTPFPTP举例来说在一个新闻分类模型中模型判定有 200 篇新闻为 “财经类新闻”但实际上其中只有 160 篇确实属于财经类那么该模型在财经类新闻预测上的精确率为160 ÷ 200 0.8 160 \div 200 0.8160÷2000.8。这表明当模型做出财经类新闻的预测时有 80% 的可能性是准确的。精确率高意味着模型在预测正例时更加 “精准”减少了误判的情况。在一些对预测准确性要求极高的场景如医疗诊断中的疾病阳性判断高精确率可以避免对患者进行不必要的进一步检查或治疗降低误诊带来的风险和成本。准确率Accuracy准确率是模型预测正确的样本占总样本的比例计算公式为A c c u r a c y T P T N T P F P T N F N Accuracy \frac{TP TN}{TP FP TN FN}AccuracyTPFPTNFNTPTN假设一个手写数字识别模型对 1000 个数字图像进行识别其中正确识别出了 920 个数字那么该模型的准确率为920 ÷ 1000 0.92 920 \div 1000 0.92920÷10000.92。这体现了模型在整体预测任务中的准确程度。然而准确率存在一个明显的局限性当正负样本分布不均衡时它可能无法真实反映模型的性能。例如在罕见疾病检测中假设某疾病在人群中的发病率仅为 1%如果模型将所有样本都预测为 “无病”那么仅从准确率来看模型的准确率会高达 99%但实际上该模型完全无法识别出患病样本没有任何实用价值。所以在样本不均衡的情况下不能单纯依靠准确率来评估模型。召回率Recall召回率也称灵敏度、真正例率指实际为正例的样本中被模型正确预测为正例的比例用于衡量模型对正例的识别能力。其计算公式为R e c a l l T P T P F N Recall \frac{TP}{TP FN}RecallTPFNTP例如在癌症早期筛查中实际有 100 名癌症患者某筛查模型成功检测出了 85 名那么该模型的召回率为85 ÷ 100 0.85 85 \div 100 0.8585÷1000.85这说明模型在所有真正的癌症患者中成功识别出了 85%。召回率高表示模型能够尽可能多地找出实际的正例样本避免遗漏。在诸如灾难预警、犯罪预测等场景中高召回率至关重要因为漏判假负例可能会导致严重的后果即使可能会产生一些误判假正例也要优先保证尽可能多的潜在风险被识别出来。召回率的提升意味着可以检测出更多的目标检出率提高。F1 值F1 值是精确率和召回率的调和平均数综合反映模型性能。当精确率和召回率都高时F1 值才会高。其计算公式为F 1 2 × P r e c i s i o n × A c c u r a c y P r e c i s i o n A c c u r a c y F1 2 × \frac{Precision × Accuracy}{Precision Accuracy}F12×PrecisionAccuracyPrecision×AccuracyF1 值的引入是为了平衡精确率和召回率这两个指标。因为在实际应用中精确率和召回率往往是相互制约的关系。例如在广告投放系统中提高精确率可能会导致召回率下降为了确保推荐的广告更精准会减少广告投放的范围从而遗漏部分潜在客户反之亦然。而 F1 值能够综合考虑这两个指标给出一个更全面的评估。当 F1 值较高时说明模型在预测正例的准确性和对正例的识别能力上都表现良好避免了单纯依赖精确率或召回率带来的片面性评估。简单示例假设有一个目标检测模型其在测试集上的预测结果如下正确预测为正样本数量TP100错误预测为正样本数量FP20错误预测为负样本数量FN30那么该模型的精确率和召回率分别为P r e c i s i o n 100 100 20 0.8333 Precision \frac{100}{100 20} 0.8333Precision100201000.8333R e c a l l 100 100 30 0.7692 Recall \frac{100}{100 30} 0.7692Recall100301000.7692三、区分要点精确率关注预测结果精确率聚焦于模型预测为正例的这部分样本重点考察其中真正正确的比例核心在于体现模型预测正例时的 “精准性”。例如在商品推荐系统中如果精确率低用户会看到大量不感兴趣的商品推荐影响购物体验而精确率高则推荐的商品大多是用户可能感兴趣的能有效提高用户的点击率和购买意愿。准确率关注整体预测准确率考量的是模型在所有样本上的预测正确程度涵盖了正例和负例的预测情况。但它受正负样本分布的影响极大在样本不均衡的场景下可能会掩盖模型在关键类别如少数类上的糟糕表现无法准确反映模型的真实性能。例如在预测罕见故障的系统中即便模型将大量正常情况预测正确但只要在罕见故障的预测上频频失误低的召回率和精确率会导致模型实际可用性差而高准确率可能会误导对模型性能的判断。召回率关注实际样本召回率侧重于评估模型从所有实际正例样本中找出正例的能力强调的是对正例的 “完整性” 捕捉。以搜索引擎为例召回率低意味着用户搜索某些关键词时会遗漏很多相关的重要网页影响搜索体验而召回率高则能尽可能全面地呈现相关内容满足用户需求。F1 值平衡两者F1 值通过调和平均数的计算方式将精确率和召回率结合起来为模型性能提供一个平衡的评估指标。在实际项目中根据不同的业务需求可能会对精确率和召回率有不同的侧重但 F1 值能够在两者之间找到一个相对合理的平衡点更客观地反映模型的综合表现。FP vs. FNFalse NegativesFN 漏检正例未检出即正例被预测为负例。在目标检测中FN可以指未能检测出实际存在的目标的情况。False PositivesFP 误检负例被误检为正例。在目标检测中FP可以指错误地将背景或非目标识别为目标的情况。mAP vs. mAR精确率和召回率的计算可以针对每个类别分别进行也可以在所有类别上进行平均得到平均精确率mAP和平均召回率mAR。