1. 真假阳性阴性
我们查体的时候,经常会听说检测结果呈”真阳性“、”假阴性“等说法。
- 其中”真“、"假"说的是检查结果的对错。”真“意味着检测结果是正确的,"假"意味着检测结果是错误的。
- ”阳性“、"阴性"说的是这次的检查结果。阳性,意味检测出了预定的目标。阴性,意味着没查出预定的目标。
一共四种组合:
检测结果 | 英文术语 | 含义 |
---|---|---|
真阳性 | true positive | 正确地检测到阳性结果:即检测结果正确,并且结果呈现阳性 |
假阳性 | false positive | 错误地检测到阳性结果:即检测结果错误,并且结果呈现阳性 |
真阴性 | true negative | 正确地检测到阴性结果:即检测结果正确,并且结果呈现阴性 |
假阴性 | false negative | 错误地检测到阴性结果:即检测结果错误,并且结果呈现阴性 |
2. 准确率(Accuracy)
准确率(Accuracy)计算公式为:
a = T P + T N T P + T N + F P + F N a=\frac{TP+TN}{TP+TN+FP+FN} a=TP+TN+FP+FNTP+TN
准确率,就是在全部预测中,正确预测结果占的比例。
3. 精度(Precision)
精度(Precision)计算公式为:
p = T P T P + F P p=\frac{TP}{TP+FP} p=TP+FPTP
精度,就是在全部阳性预测中,正确预测结果占的比例。比如,你预报了10次下雨,结果只下了3次,你的预报精度就是 0.3,因为 T P = 3 , F P = 7 TP=3,FP=7 TP=3,FP=7。
我平时很喜欢误报率这个指标,误报率这个说法很容易理解,一些工业标准常用这个概念,不知道为什么学术界不愿意用。误报率定义如下:
q
=
F
P
T
P
+
F
P
=
1
−
p
q=\frac{FP}{TP+FP}=1-p
q=TP+FPFP=1−p
精度与误报率正好相反的两个概念。比如,你预报了10次下雨,结果只下了3次,你的误报率就是 0.7。
4. 召回率(Recall)
召回率(Recall)计算公式为:
r = T P T P + F N = T P P r=\frac{TP}{TP+FN}=\frac{TP}P r=TP+FNTP=PTP
召回率,就是在全部阳性事件中,正确预测结果占的比例。比如,下了10次雨,结果你只正确预报了 2 次,你的预报的召回率就是 0.2,因为 T P = 2 , F N = 8 , P = 10 TP=2,FN=8,P=10 TP=2,FN=8,P=10。
与召回率相反的概念是漏报率,定义如下:
s
=
F
N
T
P
+
F
N
=
F
N
P
=
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。
A
P
=
∫
0
1
p
(
r
)
d
r
AP=\int_0^1p(r)dr
AP=∫01p(r)dr
6. mAP
大部分情况下,一个算法要检测多个类别的目标,要计算 mAP,就把所有类别的 AP 计算出来,然后求取平均即可。
也就是说 mAP 是算法对所有类别的检测平均精度AP的平均值。mAP 的英文是 mean average precision。