1. 评价指标
在机器学习、深度学习快速发展的时代,模型和技巧层出不穷,那么就需要有一定的指标去量化地评价这些新的idea,是否work,优化的幅度有多大。
2. 混淆矩阵
在分类任务中,通常可以用混淆矩阵比较直观地分析,各类别的预测准确度,模型在哪个类别的性能较低,以确定后续优化的方向。
预测 \ 标签 | 猫 | 狗 | 总计 |
---|---|---|---|
猫 | 16 | 1 | 17 |
狗 | 4 | 19 | 23 |
总计 | 20 | 20 | 40 |
据混淆矩阵
所示,共40张图待预测,其中20张猫、20张狗。
可直观得知,模型对于狗的预测效果更好。
此处引入TP、FP、FN、TN的概念
以猫为例:
预测 \ 标签 | 正样本 | 负样本 |
---|---|---|
预测为正(Positive) | TP | FP |
预测为负(Negative) | FN | TN |
TP: True Positive
FP: False Positive
FN: False Negative
TN: True Negative
Positive和Negative指代预测的结果,即是否为猫。
True和False指预测的正确性。
如上例, T P = 16 , F P = 1 , F N = 4 , T N = 19 TP=16, FP=1, FN=4, TN=19 TP=16,FP=1,FN=4,TN=19
注:针对每个类别,都有对应的TP, …, TN。上例指代是猫。(狗的TP=19,其他可以类推)
3. 精确率
精确率(Precision)是预测正确占预测为正样本的比例。公式如下:
P
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
=
T
P
A
l
l
P
r
e
d
i
c
t
Precision = \frac {TP}{TP + FP}=\frac {TP}{All \ Predict}
Precision=TP+FPTP=All PredictTP
就像战场中有10个目标,你射了12发导单,射中了8发,那么
T
P
=
8
,
F
P
=
4
,
P
r
e
c
i
s
i
o
n
=
8
/
12
=
66.7
%
TP=8, FP=4, Precision=8/12=66.7\%
TP=8,FP=4,Precision=8/12=66.7%
4. 召回率
召回率(Recall)是预测正确占正样本总数的比例。需要和精确率分清的是,精确率描述的是精准度,召回率描述的是对目标的覆盖率。公式如下:
R
e
c
a
l
l
=
T
P
T
P
+
F
N
=
T
P
A
l
l
T
a
r
g
e
t
Recall = \frac {TP}{TP + FN} = \frac {TP}{All \ Target}
Recall=TP+FNTP=All TargetTP
举回上面战场的例子,10个目标,射了12发导单,射中了8发,那么
T
P
=
8
,
F
N
=
2
,
R
e
c
a
l
l
=
8
/
10
=
80
%
TP=8,FN=2,Recall=8/10=80\%
TP=8,FN=2,Recall=8/10=80%
可以看出,你的召回率高于准确率,10个目标中了8个(80%),但12发导单才中了8个(66.7%)。
不同场合对模型的性能有不同的侧重需求,除了性能甚至还会有时效性的需求,在算力有限的情况下,这其实都是个trade off(折中)。
但在学术研究,或者客观评价模型、技巧的优劣上,往往要综合评价它的Precision和Recall,由此引出了F1-Score。
5. F1-Score
F1-Score是Precision(P)和Recall(R)的调和平均值。
由下公式可以看出,F1-Score同时取决于P和R,两者皆大则大,且最大值为1。
1
F
1
=
1
P
+
1
R
F
1
=
2
T
P
2
T
P
+
F
P
+
F
N
\frac {1}{F_1} = \frac {1}{P} + \frac {1}{R} \\ F1 = \frac {2TP} {2TP + FP + FN}
F11=P1+R1F1=2TP+FP+FN2TP