【图像识别评价指标】一文看懂二分类,多分类,Rank-N,mAP,recall,acc等的关系

图像识别评价指标

前阵子写reid测试评估的程序,一开始没有清晰需求,走了很多弯路,现在清理一下,看完就懂。

二分类、多分类、多标签分类

  • 二分类:表示分类任务中有两个类别,比如我们想识别一幅图片是不是猫。也就是说,训练一个分类器,输入一幅图片,用特征向量x表示,输出是不是猫,用y=0或1表示。二类分类是假设每个样本都被设置了一个且仅有一个标签:0或者1。
  • 多类分类(Multiclass classification): 表示分类任务中有多个类别。 比如对一堆水果图片分类,它们可能是橘子、苹果、梨等. 多类分类是假设每个样本都被设置了一个且仅有一个标签: 一个水果可以是苹果或者梨, 但是同时不可能是两者。
  • 多标签分类(Multilabel classification): 给每个样本一系列的目标标签。可以想象成一个数据点的各属性不是相互排斥的(一个水果既是苹果又是梨就是相互排斥的), 比如一个文档相关的话题,一个文本可能被同时认为是宗教、政治、金融或者教育相关话题。

二分类的混淆矩阵与recall,precision、acc

以分类模型中最简单的二分类为例,对于这种问题,我们的模型最终需要判断样本的结果是0还是1,或者说是positive还是negative。

我们通过样本的采集,能够直接知道真实情况下,哪些数据结果是positive,也称其为正样本,哪些结果是negative,也称其为负样本。同时,我们通过用样本数据跑出分类型模型的结果,也可以知道模型认为这些数据哪些是positive,哪些是negative。

因此,我们就能得到这样四个基础指标,我称他们是一级指标(最底层的):

【图像识别评价指标】一文看懂二分类,多分类,Rank-N,mAP,recall,acc等的关系_第1张图片

  • 真实值是positive(正样本中),模型认为是positive的数量(True Positive=TP)
  • 真实值是positive(负样本中),模型认为是negative的数量(False Negative=FN):这就是统计学上的第一类错误(Type I Error)
  • 真实值是negative(正样本中),模型认为是positive的数量(False Positive=FP):这就是统计学上的第二类错误(Type II Error)
  • 真实值是negative(负样本中),模型认为是negative的数量(True Negative=TN)

precision:精确率。 在被判断为真的样例中,实际为真的样例比例。
P = 预 测 为 正 样 本 的 结 果 / 预 测 为 正 样 本 的 所 有 结 果 = T P / ( T P + F P ) P=预测为正样本的结果/预测为正样本的所有结果 = TP/(TP+FP) P=/=TP/(TP+FP)

recall:召回率。 在实际为真的样例中,被判断为真的样例比例。
R = 预 测 为 正 样 本 的 结 果 / 实 际 为 正 样 本 的 所 有 样 本 = T P / ( T P + F N ) R=预测为正样本的结果/实际为正样本的所有样本 = TP/(TP+FN) R=/=TP/(TP+FN)

ACC:召回率。 在实际为真的样例中,被判断为真的样例比例。
R = 预 测 为 正 样 本 的 结 果 / 实 际 为 正 样 本 的 所 有 样 本 = T P / ( T P + F N ) R=预测为正样本的结果/实际为正样本的所有样本 = TP/(TP+FN) R=/=TP/(TP+FN)

多分类的混淆矩阵与recall,precision、acc【图像识别评价指标】一文看懂二分类,多分类,Rank-N,mAP,recall,acc等的关系_第2张图片

同样对于多分类问题,也有这样距混淆矩阵:【图像识别评价指标】一文看懂二分类,多分类,Rank-N,mAP,recall,acc等的关系_第3张图片
对于多分类,当我们计算这些指标的时候,就先要将多分类转换为多个二分类的问题
【图像识别评价指标】一文看懂二分类,多分类,Rank-N,mAP,recall,acc等的关系_第4张图片
每一类的计算方式和二分类问题中的是一样的,最后求得平均值即可。当然计算平均值可以选择加权与否。

ReID中的评价方式和指标

【图像识别评价指标】一文看懂二分类,多分类,Rank-N,mAP,recall,acc等的关系_第5张图片

部分参考与推荐阅读:

图像检索:信息检索评价指标
ReID任务中的CMC和mAP
sklearn.metrics中的评估方法介绍(accuracy_score, recall_score, roc_curve, roc_auc_score, confusion_matrix)
sklearn中的模型评估-构建评估函数
行人重识别计算RANK-1具体是怎么操作的?

你可能感兴趣的:(深度学习算法与工具)