TP(True Positive):真正例,表示模型正确地将正样本分类为正样本。也就是模型预测为正样本且实际上是正样本的数量。
FP(False Positive):假正例,表示模型错误地将负样本分类为正样本。也就是模型预测为正样本但实际上是负样本的数量。
FN(False Negative):假反例,表示模型错误地将正样本分类为负样本。也就是模型预测为负样本但实际上是正样本的数量。
TN(True Negative):真反例,表示模型正确地将负样本分类为负样本。也就是模型预测为负样本且实际上是负样本的数量。
上边的解释不太容易理解。解释具体见下:
训练一个模型:检测图片中的狗。输出:有狗/没狗
训练的数据中会有带狗的照片,并且标注告诉这个是狗!正样本!
训练数据中会有带猫的照片,并且标注告诉这个不是狗!副样本!
训练数据中即没有猫也没有狗,并且标注告诉这个不是狗!副样本!
举例:TP(True Positive):括号里的第一项True代表模型给出的结果是否正确!就是给你模型判作业!第二项Positive,即模型输出的结果,positive即有狗,negative即没狗
TP(True Positive):模型检测对了!有狗!
FP(False Positive):模型检测错了! 有狗!(误检)
FN(False Negative):模型检测错了! 没狗!(漏检)
TN(True Negative):模型检测对了! 没狗!
我们大部分场景用到的FP和FN即误检和漏检!
Precision = TP/(TP+FP) 所有预测为正样本中有多少是对的,预测为有狗中有多少是对的!
对于精度来讲TP不变的基础上,FP越大精度越低。
Recall = TP/(TP+FN) 在实际有狗的样本中有多少是预测对的。
对于召回率来讲TP不变的基础上,FN越大召回率约低。
平均精度(AP)
对于一个模型来讲,精度和召回率相互制约。精度越大召回率越低,召回率越大精度越低。
AP即精度和召回率围成的最大面积,通过取近似值,把曲线面积变成求很多矩形框的面积,最后得到AP.(见下图)
每一个长方形的宽是一个racall变化区间内对应的精度最大值(下右图)。这里A3形状应该分成2个,为什么这样我也没明白。这里的总体思路是召回率和精准率围成的面积,这个面积权衡考虑了误检和漏检,代表了模型的性能。
精度和召回率是相互制约的,精度越高误检越少,误检越少漏检就越多,把很多似狗非狗的都认为不是狗了。相反,漏检越少,模型相对比较积极,这样很容易把不是狗的也检测成狗了,这样误检就上去了,精度也就下来了。
所以召回率和精度处在一个比较均衡的状态是比较合适的。
mAP即对所有类别的AP求平均。