机器学习和深度学习分类问题通用评价指标精确率召回率准确率和混淆矩阵
【机器学习和深度学习】分类问题通用评价指标:精确率、召回率、准确率和混淆矩阵
v1.0
分类问题的评价
对于1个分类问题,不论其是 二分类问题 还是 多分类问题 ,或者是 多标签分类问题 (1个样本可以有多个类别),都可以对其判定结果进行统计,以类别为单位统计其各个指标,来衡量模型对该类别的预测情况。基于对某个分类的4种分类判别情况,引出了精确率、召回率、准确率和F1 Score的评价指标。
分类问题对特定样本类别的判定情况
对特定样本类别A分类判定的4种情况
T P TP
TP (True Positive) 真阳性,某条样本判定为A类样本,实际也为A类样本
F P FP
FP (False Positive)假阳性,某条样本判定为A类样本,但实际不为A类样本
T N TN
TN (True Negative)真阴性,某条样本判定不为A类样本,实际也不为A类样本
F N FN
FN (False Negative)假阴性,某条样本判定不为A类样本,但实际为A类样本
在其中T表示预测结果是正确的,F表示预测结果是错误的,P表示预测样本为A类别,N表示预测样本不为A类别。
混淆矩阵(Confusion Matrix)
混淆矩阵以表格形式,展示了模型对A类样本的预测情况,表格为2×2的尺寸,以 是否预测是否为A类样本 和 真实是否为A类样本 2个维度进行列举。
真实为A类 | 真实非A类 | |
---|---|---|
预测为A类 | TP | FP |
预测非A类 | FN | TN |
其中T表示预测正确,F表示预测错误,P表示预测为A类样本,N表示预测为非A类样本。
这其中需要注意的是FN类别,这个类别表示预测样本不是A类别(N),但是预测错误了(F),因此这个类别实际上是属于A类别的。
精确率(Precision)
精确率为判断为A类的样本中,实际为A类样本的百分比 ,公式如下:
P r e c i s i o n
T P T P + F P Precision=\frac{TP}{TP+FP}
P
rec
i
s
i
o
n
=
TP
FP
TP
精确率指标反映了模型对A类样本的误检情况 ,模型在检测到为A类样本时,误检情况越少,精确率越高。
精确率不反映漏检的情况,即只是在模型判断样本为A类时进行的统计,仍有一些样本属于A类,但被判别为其他类(B类、C类)等,这些样本对于A类来说属于FN,不参加精确度的计算。
召回率(Recall)
对所有所有A类样本进行判段,有2种情况,被正确判断为A类的样本和被误判为其他类的样本。 召回率为正确判断为A类的样本,占总体A类样本的比例 。公式如下:
R e c a l l
T P T P + F N Recall=\frac{TP}{TP+FN}
R
ec
a
ll
=
TP
FN
TP
召回率反映的是A类样本的漏检情况 。若A类样本无漏检,则A类样本的召回率为100%,但此时仍可能出现属于其他类别的样本,被误判为A类样本的情况,这种情况为FP。根据召回率的定义和公式,FP的情况并不影响召回率。
准确率(Accuracy)
准确率用来衡量对于A类样本,预测正确的样本数占样本总数的比例 。这里 正确的样本包括属于A类且预测为A类的情况(TP) ,也 包括不属于A类,也没有被判别为A类的情况(TN) 。准确率的公式如下:
A c c u r a c y
T P + F N T P + T N + F P + F N
T T + F Accuracy=\frac{TP+FN}{TP+TN+FP+FN}=\frac{T}{T+F}
A
cc
u
r
a
cy
=
TP
TN
FP
FN
TP
FN
=
T
F
T
准确率既考虑漏检情况(FN),也考虑误检情况(FP)。在二分类的情况下,准确率是一个全局指标。在多分类问题中,可以单独考虑每类样本的准确率。
F1 Score
F1 Score用来综合反应模型对样本类别A的预测情况, 结合使用了样本类别A的精确率和召回率 。F1 Score公式如下:
1 F 1 S c o r e
1 2 ⋅ ( 1 P r e c i s i o n + 1 R e c a l l ) \frac{1}{F1\space{Score}}=\frac{1}{2}\cdot(\frac{1}{Precision}+\frac{1}{Recall})
F
1
S
core
1
=
2
1
⋅
(
P
rec
i
s
i
o
n
1
R
ec
a
ll
1
)
或者将上式化简,将F1 Score单独放到左边,得到如下公式:
F 1 S c o r e
2 ⋅ P r e c i s i o n ⋅ R e c a l l P r e c i s i o n + R e c a l l F1\space{Score}=\frac{2{\cdot}Precision{\cdot}Recall}{Precision+Recall}
F
1
S
core
=
P
rec
i
s
i
o
n
R
ec
a
ll
2
⋅
P
rec
i
s
i
o
n
⋅
R
ec
a
ll
**F1 Score的取值范围为
[ 0 , 1 ] [0,1]
[
0
,
1
]** ,在精确率和召回率都为
100 100%
100 时为
1 1
1 。F1 Score越高,模型对A类样本的预测总体性能越好。