评估模型性能的指标——准确率、精确率、召回率、混淆矩阵、PR曲线

正样本、负样本、困难样本、简单样本

正样本: 与真值对应的目标类别来说该样本为正样本
负样本: 与真值不对应的其他所有目标类别来说该样本为负样本
困难样本: 预测时与真值标签误差较大的样本
简单样本: 预测时与真值标签误差较小的样本

示例:

对于图片分类:需要识别马、羊、牛三个类别
给一张马的图片:对于预测马来说这个样本为正样本,对于预测羊和牛来说该样本为负样本。
对于 o n e − h o t one-hot onehot 标签:[1, 0, 0],在预测出概率分布为 [0.3, 0.3, 0.4] 时, o n e − h o t one-hot onehot 标签相差较大,则此时该样本是困难样本。而预测出 [0.98, 0.01, 0.01] 时,与 o n e − h o t one-hot onehot 标签相差较小,则此时该样本为简单样本

混淆矩阵

在机器学习领域,混淆矩阵(Confusion Matrix),又称为可能性矩阵或错误矩阵。混淆矩阵是可视化工具,特别用于监督学习,在无监督学习一般叫做匹配矩阵。在图像精度评价中,主要用于比较分类结果和实际测得值,可以把分类结果的精度显示在一个混淆矩阵里面。

混淆矩阵要表达的含义:

  • 混淆矩阵的每一列代表了预测类别,每一列的总数表示预测为该类别的数据的数目;
  • 每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的数据实例的数目;每一列中的数值表示真实数据被预测为该类的数目。

$ True\ Positive(TP)$:真正类。样本的真实类别是正类,并且模型识别的结果也是正类

F a l s e   N e g a t i v e ( F N ) False\ Negative(FN) False Negative(FN)假负类。样本的真实类别是正类,但是模型将其识别为负类

F a l s e   P o s i t i v e ( F P ) False\ Positive(FP) False Positive(FP)假正类。样本的真实类别是负类,但是模型将其识别为正类

T r u e   N e g a t i v e ( T N ) True\ Negative(TN) True Negative(TN)真负类。样本的真实类别是负类,并且模型将其识别为负类
总样例数 = T P + F P + T N + F N 总样例数=TP+FP+TN+FN 总样例数=TP+FP+TN+FN
示例:

每一行之和表示该类别的真实样本数量,每一列之和表示被预测为该类别的样本数量。

第一行第一列中的43表示有43个实际归属第一类的实例被预测为第一类,同理,第一行第二列的2表示有2个实际归属为第一类的实例被错误预测为第二类。

混淆矩阵是对分类问题的预测结果的总结。使用计数值汇总正确和不正确预测的数量,并按每个类进行细分,这是混淆矩阵的关键所在。混淆矩阵显示了分类模型的在进行预测时会对哪一部分产生混淆。它不仅可以让您了解分类模型所犯的错误,更重要的是可以了解哪些错误类型正在发生。正是这种对结果的分解克服了仅使用分类准确率所带来的局限性。

精确率 ( A c c u r a c y Accuracy Accuracy)

精确率是最常用的分类性能指标。可以用来表示模型的精度,即模型识别正确的个数/样本的总个数。一般情况下,模型的精度越高,说明模型的效果越好
A c c u r a c y = T P + T N T P + F N + F P + T N Accuracy = \frac{TP+TN}{TP+FN+FP+TN} Accuracy=TP+FN+FP+TNTP+TN

A c c u r a c y = 正确分类的样本数 总样本数 Accuracy = \frac{正确分类的样本数}{总样本数} Accuracy=总样本数正确分类的样本数

正确率/准确率 ( P r e c i s i o n Precision Precision)

又称为查准率,表示在模型识别为正类的样本中,真正为正类的样本所占的比例。一般情况下,查准率越高,说明模型的效果越好。
P r e c i s i o n = T P T P + F P Precision = \frac{TP}{TP+FP} Precision=TP+FPTP

召回率 ( R e c a l l Recall Recall)

又称为查全率,召回率表现出在实际正样本中,分类器能预测出多少。表示的是,模型正确识别出为正类的样本的数量占总的正类样本数量的比值。一般情况下, R e c a l l Recall Recall 越高,说明有更多的正类样本被模型预测正确,模型的效果越好。
R e c a l l = T P T P + F N Recall = \frac{TP}{TP+FN} Recall=TP+FNTP
精确率和召回率是一对矛盾的指标。一般来说,精确率高时,召回率往往偏低;召回率高时,精确率往往偏低

P − R P-R PR 曲线

算法对样本进行分类时,都会有置信度,即表示该样本是正样本的概率,比如99%的概率认为样本A是正例,1%的概率认为样本B是正例。通过选择合适的阈值,比如50%,对样本进行划分,概率大于50%的就认为是正例,小于50%的就是负例。

通过置信度就可以对所有样本进行排序,再逐个样本的选择阈值,在该样本之前的都属于正例,该样本之后的都属于负例。每一个样本作为划分阈值时,都可以计算对应的 p r e c i s i o n precision precision r e c a l l recall recall

在这里插入图片描述

在深度学习模型的性能评估中, P R ( P r e c i s i o n − R e c a l l ) PR(Precision-Recall) PR(PrecisionRecall)曲线是一种重要的工具,特别是当处理不平衡数据集时。这是因为PR曲线提供了更详细和有用的信息来评估模型在不同阈值下的表现。具体来说,使用 P R PR PR 曲线的原因包括:

  1. 处理不平衡数据集
    • 在分类任务中,数据集可能存在正负样本数量不均衡的情况。例如,检测欺诈交易时,欺诈交易(正样本)占总交易数的比例很小,而正常交易(负样本)占绝大多数。在这种情况下, P R PR PR 曲线比 R O C ROC ROC 曲线更能准确反映模型的性能。因为ROC曲线中的特征(例如假阳性率)在不平衡数据集中会显得不敏感。
  2. 关注正样本的识别
    • P R PR PR 曲线直接展示了模型对正样本的识别能力,通过精确率( P r e c i s i o n Precision Precision)和召回率( R e c a l l Recall Recall)两个指标来衡量。精确率是指模型预测为正样本的实例中有多少是正确的,而召回率是指所有实际为正样本的实例中有多少被正确预测。通过 P R PR PR 曲线可以更好地观察模型在不同阈值下对正样本的分类效果。
  3. 阈值选择
    • PR曲线有助于确定最佳决策阈值。在实际应用中,我们往往需要根据具体需求选择一个合适的阈值,以平衡精确率和召回率。例如,如果我们更关心识别出所有的正样本(高召回率),可以选择一个较低的阈值;如果我们更关心预测结果的准确性(高精确率),可以选择一个较高的阈值。
  4. 评估模型整体性能
    • 通过计算 P R PR PR 曲线下的面积,可以获得一个综合性能指标,用来比较不同模型的优劣。对于不平衡数据集来说, P R PR PR 曲线下的面积通常比 R O C ROC ROC 曲线下的面积更具判别力。

P R PR PR 曲线中,阈值起着关键作用,因为它直接影响模型的精确率和召回率。具体来说,阈值的作用可以总结为以下几点:

  1. 决定分类结果
    • 阈值是模型判定样本属于某个类别的标准。例如,在二分类任务中,如果模型输出的概率大于阈值,就将样本分类为正类;否则分类为负类。通过调整阈值,可以改变模型的分类决策,从而影响精确率和召回率。
  2. 平衡精确率和召回率
    • 阈值调整会导致精确率和召回率的变化。一般来说,提高阈值会增加精确率,但降低召回率;降低阈值则会增加召回率,但降低精确率。在 P R PR PR 曲线中,不同的阈值对应不同的精确率召回率组合,通过绘制这些组合点来形成整个 P R PR PR 曲线。
  3. 选择最佳阈值
    • 在实际应用中,选择适当的阈值非常重要,尤其是在对精确率和召回率有特定要求的场景下。例如,在医学诊断中,如果希望尽可能多地识别出病人(高召回率),可以选择一个较低的阈值;而在垃圾邮件过滤中,如果希望减少误报(高精确率),可以选择一个较高的阈值。通过分析 P R PR PR 曲线,可以帮助确定最适合特定应用需求的阈值。
  4. 理解模型性能的变化
    • 通过观察不同阈值下 P R PR PR 曲线的形态,可以了解模型在不同阈值下的表现。例如,曲线的形状和位置可以显示模型在不同精确率和召回率水平下的性能。如果 P R PR PR 曲线在所有阈值下都接近(1,1)点,则说明模型性能优异。
  5. 优化模型
    • 在模型训练和优化过程中,可以利用PR曲线和不同阈值下的精确率和召回率来调整模型参数,以达到最佳性能。通过实验和验证,找到在实际应用中表现最优的阈值,确保模型在实际使用中的效果。

参考文章:
[机器学习笔记] 混淆矩阵(Confusion Matrix)_混淆矩阵计算公式-CSDN博客

深度学习中正样本、负样本、困难样本、简单样本区别-CSDN博客

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐