1. 真假阳性阴性
我们查体的时候,经常会听说检测结果呈”真阳性“、”假阴性“等说法。
其中”真“、"假"说的是检查结果的对错。”真“意味着检测结果是正确的,"假"意味着检测结果是错误的。”阳性“、"阴性"说的是这次的检查结果。阳性,意味检测出了预定的目标。阴性,意味着没查出预定的目标。
一共四种组合:
检测结果英文术语含义真阳性true positive正确地检测到阳性结果:即检测结果正确,并且结果呈现阳性假阳性false positive错误地检测到阳性结果:即检测结果错误,并且结果呈现阳性真阴性true negative正确地检测到阴性结果:即检测结果正确,并且结果呈现阴性假阴性false negative错误地检测到阴性结果:即检测结果错误,并且结果呈现阴性2. 准确率(Accuracy)
准确率(Accuracy)计算公式为:
a=TP+TNTP+TN+FP+FN
a=\frac{TP+TN}{TP+TN+FP+FN}
a=TP+TN+FP+FNTP+TN
准确率,就是在全部预测中,正确预测结果占的比例。
3. 精度(Precision)
精度(Precision)计算公式为:
p=TPTP+FP
p=\frac{TP}{TP+FP}
p=TP+FPTP
精度,就是在全部阳性预测中,正确预测结果占的比例。比如,你预报了10次下雨,结果只下了3次,你的预报精度就是 0.3,因为 TP=3,FP=7TP=3,FP=7TP=3,FP=7。
我平时很喜欢误报率这个指标,误报率这个说法很容易理解,一些工业标准常用这个概念,不知道为什么学术界不愿意用。误报率定义如下:
q=FPTP+FP=1−p
q=\frac{FP}{TP+FP}=1-p
q=TP+FPFP=1−p
精度与误报率正好相反的两个概念。比如,你预报了10次下雨,结果只下了3次,你的误报率就是 0.7。
4. 召回率(Recall)
召回率(Recall)计算公式为:
r=TPTP+FN=TPP
r=\frac{TP}{TP+FN}=\frac{TP}P
r=TP+FNTP=PTP
召回率,就是在全部阳性事件中,正确预测结果占的比例。比如,下了10次雨,结果你只正确预报了 2 次,你的预报的召回率就是 0.2,因为 TP=2,FN=8,P=10TP=2,FN=8,P=10TP=2,FN=8,P=10。
与召回率相反的概念是漏报率,定义如下:
s=FNTP+FN=FNP=1−r
s=\frac{FN}{TP+FN}=\frac{FN}P=1-r
s=TP+FNFN=PFN=1−r
比如,下了10次雨,结果你只正确预报了 2 次,你的预报的漏报率就是 0.8,
5. ROC 曲线与平均精度 AP
精度 p 和召回率 r 是两个矛盾的测量指标。
如果我们希望精度提升,即,降低误报率,但是,这样一来就会提升漏报率,也就是召回率下降。反之亦然。同一个算法,其精度和召回率的关系大致可以用下面的图象来表示,下面的函数 p(r)p(r)p(r) 曲线称为 ROC 曲线。
最理想的情况是,精度 p 和召回率 r 能同时取得无限接近1的结果。因此,我们希望ROC曲线下方覆盖的面积无限接近 1。我们把ROC取下下方的面积称为检测算法的平均精度,即,AP。
AP=∫01p(r)dr
AP=\int_0^1p(r)dr
AP=∫01p(r)dr
6. mAP
大部分情况下,一个算法要检测多个类别的目标,要计算 mAP,就把所有类别的 AP 计算出来,然后求取平均即可。
也就是说 mAP 是算法对所有类别的检测平均精度AP的平均值。mAP 的英文是 mean average precision。