概述
今天查阅 GEC 文献资料,遇到 F0.5 score,这里记录总结下常见的分类模型评价指标:accuracy(准确率)、F-score、AUC等,其中 F-score 和 AUC 都涉及到 Precision、Recall。
一、accuracy(准确率)
1.1概念
accuracy:指模型预测中,预测对的数量在预测总数量的占比,公式如下:
A
c
c
=
n
N
Acc=frac{n}{N}
Acc=Nn
其中,
n:模型预测对的样本数量(注意:这里是指所有类别模型预测对的数量,要与 precision 区分开);
N:模型预测的总数量。
还可写成2.1节中的方式。
1.2优缺点
优点:
计算简单,能直观反映模型的好坏。
缺点:
当样本类别不均衡时,单纯的 accuracy 不能很好的反映模型的好坏,尤其在如下极端情况:
10000 个样本中,其中一类别 A 数量达到 9990 个,剩下 10 个样本为其它类别,当模型全部预测为 A类别时,其模型accuracy 达到 99.9%。这种情况, accuracy 不能反映模型的好坏。
二、F - score
对于上面出现的 样本类别不均衡 情况,其中一种方法是 F-score,它考虑了两个尺度——Precision、Recall。
注意:Precision、Recall 都是二分类评价指标,在多分类任务中,每类需要转化为 (是、不是),如:多分类任务有 ABC 三类,需要转化为 (是A、不是A)(是B、不是B)(是C、不是C),再去求对应的Precision、Recall 。
2.1 Precision(精确率)和 Recall(召回率)
如下表为 模型预测 情况——两类(P:阳性,N:阴性):
P(真实标签) | N(真实标签) | |
---|---|---|
P(模型预测) | TP(正确阳性) | FP(错误阳性) |
N(模型预测) | FN(正确阴性) | TN(正确阴性) |
根据上表,accuracy计算公式也可表示为 | ||
$$ | ||
Acc = frac{TP+TN}{TP+FP+FN+TN} | ||
$$ |
Precision(精确率)
指模型预测样本中,预测对的在该类预测总数量的占比,公式如下:
P
=
T
P
T
P
+
F
P
P = frac{TP}{TP+FP}
P=TP+FPTP
Recall(召回率):
指模型预测样本中,预测对的在该类真实标签总数量的占比,公式如下:
R
=
T
P
T
P
+
F
N
R = frac{TP}{TP+FN}
R=TP+FNTP
Precision 与 Recall 是一对相矛盾的评价指标。想要 Precision 增加,模型会尽可能预测正确,这样使得模型预测的范围小(尽可能放弃不确定的样本,这样 Recall 会降低);相反,想要 Recall 增加,模型会尽可能预测全部范围,这样使得模型预测的难度加大(Precision 会降低)
2.2 F - score
F - score 是调和 Precision 与 Recall 的一类评价指标,其中常用的有 F1 - score 、F0.5 - score 和 F2 - score。
F - score的计算公式为:
F
−
s
c
o
r
e
=
(
1
+
α
2
)
P
∗
R
α
2
∗
P
+
R
F - score = (1+alpha^2)frac{P*R}{alpha^2*P+R}
F−score=(1+α2)α2∗P+RP∗R
2.2.1 F1 - score 、F0.5 - score 和 F2 - score
当 α = 1 alpha=1 α=1时,即为 F1 - score,是 Precision 与 Recall 的调和平均(Precision 与 Recall 同等重要)
当 α = 0.5 alpha=0.5 α=0.5时,即为 F0.5 - score(Precision 比 Recall 重要)
当 α = 2 alpha=2 α=2时,即为F2 - score(Recall 比 Precision 重要)
2.2.2 例子
模型A的P=0.8,R=0.7:
根据 2.2.1 中的结论,可得出:
当
α
=
2
alpha=2
α=2,Recall 更重要,而 P>R,故 F2 - score<F1 - score;
当
α
=
0.5
alpha=0.5
α=0.5,Precision 更重要,而 P>R,故 F0.5 - score>F1 - score;
而根据公式:
F
1
−
s
c
o
r
e
A
=
(
1
+
1
2
)
0.8
∗
0.7
1
2
∗
0.8
+
0.7
=
1.12
1.5
≈
0.7467
F1-score_A=(1+1^2)frac{0.8*0.7}{1^2*0.8+0.7}=frac{1.12}{1.5}approx0.7467
F1−scoreA=(1+12)12∗0.8+0.70.8∗0.7=1.51.12≈0.7467
F
0.5
−
s
c
o
r
e
A
=
(
1
+
0.
5
2
)
0.8
∗
0.7
0.
5
2
∗
0.8
+
0.7
=
2.8
3.6
≈
0.7778
F0.5-score_A=(1+0.5^2)frac{0.8*0.7}{0.5^2*0.8+0.7}=frac{2.8}{3.6}approx0.7778
F0.5−scoreA=(1+0.52)0.52∗0.8+0.70.8∗0.7=3.62.8≈0.7778
F
2
−
s
c
o
r
e
A
=
(
1
+
2
2
)
0.8
∗
0.7
2
2
∗
0.8
+
0.7
=
2.8
3.9
≈
0.7179
F2-score_A=(1+2^2)frac{0.8*0.7}{2^2*0.8+0.7}=frac{2.8}{3.9}approx0.7179
F2−scoreA=(1+22)22∗0.8+0.70.8∗0.7=3.92.8≈0.7179
可得:
0.7179
<
0.7467
<
0.7778
0.7179 <0.7467<0.7778
0.7179<0.7467<0.7778,即
F
2
−
s
c
o
r
e
A
<
F
1
−
s
c
o
r
e
A
<
F
0.5
−
s
c
o
r
e
A
F2-score_A < F1-score_A<F0.5-score_A
F2−scoreA<F1−scoreA<F0.5−scoreA,与结论一致。
2.2.3 总结
在倾向于 Precision 的分类任务场景下,常使用 F0.5 - score,或
α
<
1
alpha<1
α<1的其它值;
在倾向于 Recall 的分类任务场景下,常使用 F2 - score,或
α
>
1
alpha>1
α>1的其它值;
在Precision 与 Recall 同等重要的分类任务场景下,常使用 F1 - score。
最后
以上就是大胆铃铛为你收集整理的评价指标(一)一、accuracy(准确率)二、F - score的全部内容,希望文章能够帮你解决评价指标(一)一、accuracy(准确率)二、F - score所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复