【深度学习】查准率、召回率、AP、mAP
AP和mAP计算详解(代码全解)参考:https://mp.weixin.qq.com/s?__biz=MzUxNjcxMjQxNg==&mid=2247490269&idx=3&sn=718b101325a37b152951772e11d4efde&chksm=f9a26852ced5e144200ae2f95d3bd15d9e213dff2728f85defdf
AP和mAP计算详解(代码全解)
参考:https://mp.weixin.qq.com/s?__biz=MzUxNjcxMjQxNg==&mid=2247490269&idx=3&sn=718b101325a37b152951772e11d4efde&chksm=f9a26852ced5e144200ae2f95d3bd15d9e213dff2728f85defdf75fcd5aeb7acd53f50eb233c&mpshare=1&scene=1&srcid=#rd
Recall和Precision一样,脱离类别是没有意义的。说到Precision(或Recall),一定指的是某个类别的Precision(或Recall)。
目标检测里面没有用准确率Accuracy来评估的,都只用Recall和Precision以及mAP。
(1) Accuracy:准确率
✔️ 准确率=预测正确的样本数/所有样本数,即预测正确的样本比例(包括预测正确的正样本和预测正确的负样本,不过在 【目标检测】 领域,没有预测正确的负样本这一说法,所以目标检测里面没有用Accuracy的)。
Acc = (TP + FN) / num_allSamples
=(TP + TN)/ (TP+TN+FP+FN)
比如说,检测猫,猫以外的其他类别都是负样本,所以负样本不是指一个类别,而是除你要检测的类别以外的所有类别,除非是二分类。【这段话是我添加的】
(2) Precision:查准率
【分母为 所有预测结果为该类别的样本数目】
✔️ recision表示某一类样本预测有多准。
✔️ Precision针对的是某一类样本,如果没有说明类别,那么Precision是毫无意义的(有些地方不说明类别,直接说Precision,是因为二分类问题通常说的Precision都是正样本的Precision)。
Precision = TP/(TP + FP)
比如说,检测猫,分子为标签为猫,预测结果也为猫,即预测正确的样本数;分母为预测结果为猫的所有样本数(注意不是图片数)。
即Precision就是预测猫正确的样本数 占 所有预测结果为猫的样本数。
之所以叫查准率(精确率),是因为预测出了n个该类别的,只预测对了m(m<n)个正确的,所以叫(精确率)查准率。
【上面这两段话是我添加的】
(3) Recall:召回率
【分母为 该类别的所有标签数目】
✔️ Recall和Precision一样,脱离类别是没有意义的。说道Recall,一定指的是某个类别的Recall。Recall表示某一类样本,预测正确的与所有Ground Truth的比例。
Recall = TP/(TP + FN)
✍️ Recall计算的时候,分母是Ground Truth中某一类样本的数量,而Precision计算的时候,是预测出来的某一类样本数。
比如说,检测猫,分子为标签为猫,预测结果也为猫,即预测正确的样本数;分母为把猫检测为猫和把猫检测为非猫的所有样本,即分母是标注的标签中所有为猫的目标总数,不是包含猫的图片的总数,因为每张图片可能有多只猫,每只猫都得算进去。
那么recall就是预测猫正确的样本数 占 所有标签为猫的样本数 的比例。
之所以叫召回率,是因为该类别本来有n个正确的,只召回了m(m<n)个正确的,所以叫召回率。
【上面这两段话是我添加的】
(4) F1 Score:平衡F分数
F1分数,它被定义为查准率和召回率的调和平均数:
F1 = 2* Precision * Recall / (Precision + Recall)
= 2*TP / (2TP + FN + FP)
更多推荐
所有评论(0)