准确率、精确率、召回率、F1-score
- 概念理解
- 准确率(accuracy)
- 精确率(也叫查准率,precision)
- 召回率(也叫查全率,recall)
- F1-score
概念理解
TP(True Positives):真正例,预测为正例而且实际上也是正例;
FP(False Positives):假正例,预测为正例然而实际上却是负例;
FN(false Negatives):假负例,预测为负例然而实际上却是正例;
TN(True Negatives):真负例,预测为负例而且实际上也是负例。
真实值(True) | 真实值(False) | |
---|---|---|
预测值(Positive) | 真正例(TP) | 假正例(FP) |
预测值(Negative) | 假负例(FN) | 真负例(TN) |
准确率(accuracy)
所有预测正确的样本(包含正例或负例均预测正确,即正例预测为正TP或负例预测为负TN)占总样本的比例。
a
c
c
u
r
a
c
y
=
T
P
+
T
N
T
P
+
F
P
+
F
N
+
T
N
accuracy = \dfrac{TP+TN}{TP+FP+FN+TN}
accuracy=TP+FP+FN+TNTP+TN
虽然准确率能够判断总的正确率,但是在样本不均衡的情况下,并不能作为很好的指标来衡量结果。在样本不平衡的情况下,得到的高准确率没有任何意义,此时准确率就会失效。
精确率(也叫查准率,precision)
预测为正的正例样本与全部预测为正例的样本 (对于预测而言,包括真正例TP,假正例FP)的比值。即正确预测为正的占全部预测为正的比例,(真正正确的占所有预测为正的比例)
p
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
precision= \dfrac{TP}{TP+FP}
precision=TP+FPTP
我们关心的主要部分是正例,所以查准率就是相对正例的预测结果而言,正例预测的准确度。直白的意思就是模型预测为正例的样本中,其中真正的正例占预测为正例样本的比例,用此标准来评估预测正例的准确度。
精确率代表对正样本结果中的预测准确程度,准确率则代表整体的预测准确程度,包括正样本和负样本。
召回率(也叫查全率,recall)
预测为正的正例占全部实际为正例的样本 (可能将实际正例预测为正例即真正例TP,也可能实际正例预测为负例即假负例FN)的比例(真正正确的占所有实际为正的比例)
以实际样本为判断依据,实际为正例的样本中,被预测正确的正例占总实际正例样本的比例。
p
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
N
precision= \dfrac{TP}{TP+FN}
precision=TP+FNTP
F1-score
精确率和召回率互相影响,理想状态下肯定追求两个都高,但是实际情况是两者相互“制约”:追求精确率高,则召回率就低;追求召回率高,则通常会影响精确率。我们当然希望预测的结果精确率越高越好,召回率越高越好, 但事实上这两者在某些情况下是矛盾的。这样就需要综合考虑它们,最常见的方法就是F-score。 也可以绘制出P-R曲线图,观察它们的分布情况。
F1值为算数平均数除以几何平均数,且越大越好,将Precision和Recall的上述公式带入会发现,当F1值小时,True Positive相对增加,而false相对减少,即Precision和Recall都相对增加,即F1对Precision和Recall都进行了加权。
F
1
=
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
=
2
T
P
2
T
P
+
F
P
+
F
N
F_1= \dfrac{2*precision*recall}{precision+recall}=\dfrac{2TP}{2TP+FP+FN}
F1=precision+recall2∗precision∗recall=2TP+FP+FN2TP
一般来说准确率和召回率呈负相关,一个高,一个就低,如果两个都低,一定是有问题的。 一般来说,精确度和召回率之间是矛盾的,这里引入F1-Score作为综合指标,就是为了平衡准确率和召回率的影响,较为全面地评价一个分类器。F1是精确率和召回率的调和平均。F1-score越大说明模型质量更高。