目标检测指标
虽然在做目标检测,但是指标的意义和计算方法总是记不清,容易忘。写篇笔记记录一下。
混淆矩阵
TP,FP,FN,TN网上有的解释看的越看越晕,下边是我自己的理解。
前面的T或F代表模型这次预测的是正确还是错误。
后边的P或N代表模型这次预测的是正例还是负例。
以判断西瓜好坏为例:
TP:模型预测这个西瓜为好瓜(P, positive),实际上也是好瓜(T,预测正确,True)。
FP:模型预测这个西瓜为好瓜(P, positive),实际上是坏瓜(F, 预测错误,False)。
TN: 模型预测这个西瓜为坏瓜(N, Negative),实际上是坏瓜(T, 预测正确,True)。
FN: 模型预测这个西瓜为坏瓜(N, Negative),实际上是好瓜(F, 预测错误,False)。
精度(accuracy)
a c c = T P + T N T P + T N + F P + F N acc = \frac{TP + TN}{TP + TN + FP + FN} acc=TP+TN+FP+FNTP+TN
就是模型 正确预测的结果数量 与 模型所有预测的结果 比值。
精确率(查准率 precision) P
p r e c i s i o n = T P T P + F P precision = \frac{TP}{TP + FP} precision=TP+FPTP
模型预测某一类别中,正确预测的概率。重点在于模型预测的结果中正确预测的多少。
召回率(查全率 recall) R
r e c a l l = T P T P + F N recall = \frac{TP}{TP + FN} recall=TP+FNTP
模型正确预测某一类的样本数,占总正样本中的数量。重点在于模型预测覆盖到正样本的多少。
F1
F ( k ) = ( 1 + k ) ∗ P ∗ R ( k ∗ k ) ∗ P + R F(k) = \frac{(1 + k) * P * R}{(k * k) * P + R} F(k)=(k∗k)∗P+R(1+k)∗P∗R
F1就是F(1)
F
1
=
2
∗
P
∗
R
P
+
R
F1 = \frac{2 * P * R}{P + R}
F1=P+R2∗P∗R
F1 用于区分算法优劣,漏检优先级高,其次是误检。
PR曲线
纵轴为precision,横轴为Recall的一个曲线图。计算方法为,对一个类进行计算,模型预测结果的score进行排序。对每一个score分别做阈值,得到新的TP、FP、FN,分别计算P和R。得到该类的PR曲线。
AP和mAP
AP (Average Precision): 平均精度,两种算法,一种是PR曲线做平滑处理后,求PR曲线面积。一种是将R平均分为11点,将对应的P求均值。
mAP(mean AP): 各个类别的AP均值。