假设使用sklearn.metrics.classification_report生成的分类图像如下图所示:

列名:“精确率(precision)”、“召回率(recall)”、“F1值(f1-score)”、“样本数(support)”
行名:“类别(0:错误;1:正确)”、“准确率(accuracy)”、“算术平均(macro avg)”、“加权平均(weighted avg)”
weighted avg:本身的比例乘以该样本占全部样本的比例
m
a
c
r
o
w
e
i
g
h
t
=
(
0.9305
+
0.9474
)
/
2
=
0.9389
w
e
i
g
h
t
e
d
a
v
g
=
0.9305
∗
7702
7702
+
10498
+
0.9474
∗
10498
10498
+
7702
macro\ weight=(0.9305+0.9474)/2=0.9389\\ weighted\ avg=0.9305*\frac{7702}{7702+10498}+0.9474*\frac{10498}{10498+7702}
macro weight=(0.9305+0.9474)/2=0.9389weighted avg=0.9305∗7702+104987702+0.9474∗10498+770210498
想要理解什么是精确率、什么是召回率、什么是F1值,我们首先需要了解混淆矩阵
我们在这里定义行表示真实值,列表示预测值,如下图:



精确率:你认为是对的中,有多少是对的
你认为对的中:即预测值为1的数量:TP+FP
有多少是对的:TP
P
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
Precision=\frac{TP}{TP+FP}
Precision=TP+FPTP
精确率衡量了模型在预测正类别时的准确性
召回率:本来是对的中,你找回了多少对的
本来是对的,即真实值为1的数量:TP+TN
你找回了多少对的:TP
R
e
c
a
l
l
=
T
P
T
P
+
T
N
Recall=\frac{TP}{TP+TN}
Recall=TP+TNTP
召回率衡量模型找出正类别样本的能力
F1值:精确率越高越好,召回率越高越好
F
1
=
2
1
P
r
e
c
i
s
i
o
n
+
1
R
e
c
a
l
l
(
方便理解
)
F1=\frac{2}{\frac{1}{Precision}+\frac{1}{Recall}}(方便理解)
F1=Precision1+Recall12(方便理解)
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
(
标准公式
)
F1=\frac{2Precision*Recall}{Precision+Recall}(标准公式)
F1=Precision+Recall2Precision∗Recall(标准公式)
F1值综合考虑了模型的准确性和查全率
1、classification_report分类报告
2、自己画混淆矩阵,防止懵逼
3、精确率(精准率),召回率,F1值的通俗解释