准确率(precision)、召回率(recall)与F1

本文深入探讨了分类任务中的性能度量,包括错误率、精度、准确率、召回率及F1度量的概念与计算方法。并通过准确率-召回率曲线(P-R曲线)展示不同学习器的性能对比,最后介绍了宏准确率、宏召回率和微准确率等多分类场景下的性能度量。
摘要由CSDN通过智能技术生成

        在分类任务中,两种最常用的性能度量是错误率和精度。错误率是分类错误的样本数占样本总数的比例;精度则是分类正确的样本数占样本总数的比例。错误率和精度虽然常用,但并不能满足所有任务需求。

        例如在信息检索和Web搜索中,经常关心的问题是“检索出来的信息有多少比例是用户感兴趣的”、“用户感兴趣的信息有多少被检索出来了”。准确率和召回率就是用来描述此类问题的性能度量。在有些问题中准确率被称为查准率,召回率被称为查全率,其实都是一个意思。

一、准确率、召回率

对于二分类问题,可将样例根据真实值和预测值分为四类——真正例(true positive)、假正例(false positive)、真反例(true negative)和假反例(false negative)。令TP、FP、TN、FN分别表示对应的样例数,则有TP+FP+TN+FN=样例总数。

        真实值

预测值
正例反例
正例TP(真正例)FN(假反例)
反例FP(假正例)TN(真反例)

 

这张表称为混淆矩阵(confusion matrix)。

准确率P和召回率R分别定义为:

                                                     P=\frac{TP}{TP+FP}

                                                     R=\frac{TP}{TP+FN}

准确率和召回率是一对相互矛盾的度量。准确率高时,召回率往往偏低;而召回率高时,准确率往往偏低。例如,若希望将用户感兴趣的信息筛选出来,则可通过增加选择信息的数量来实现,这样召回率高了,准确率就会降低;若希望筛选出来的信息用户喜欢的比例尽可能的高,则会选择最有把握的信息,这样就会漏选其他用户可能感兴趣的信息,使得召回率就会偏低。通常只有在一些简单的任务中,才可能使准确率和召回率都很高。

二、比较准确率和召回率

以召回率为横轴、准确率为纵轴作图,就能得到准确率-召回率曲线,简称“P-R曲线”。

                                         

如何根据P-R曲线选择合适的学习器呢?

  • 若一个学习器的P-R曲线被一个学习器的曲线完全“包住”,则选择后面那个大的,例如曲线中B的性能优于C的性能。
  • 如果两个学习器的曲线发生了交叉,例如图中的A和B。一个方法是比较P-R曲线下面积的大小,但是这个值不太好算。所以另一个方法是选择“平衡点”(Break-Even Point,简称BEP)。平衡点是 准确率=召回率  时的取值。所以可认为A的性能优于B。

三、F1

但是BEP还是有点草率,更常用的是F1度量:

                                                          F1=\frac{2\times P\times R}{P+R}=\frac{2\times TP}{2TP+FP+FN}

F1对准确率和召回率一视同仁,F1有更一般的形式——F_{\beta }表达出我们对准确率和召回率不同的偏好,它定义为:

                                                         F_{\beta }=\frac{(1+\beta^{2})\times P\times R}{(\beta^{2}\times P)+R}

\beta=1时退化为标准的F1;\beta >1时召回率有更大的影响;\beta <1时准确率有更大影响。

四、n个二分类下准确率和召回率

  • 一种直接的做法是先在各个混淆矩阵上分别计算准确率和召回率,再计算平均值,这样就得到”宏准确率“(macro-P)、”宏召回率“(macro-R),以及”宏F1“(macro-F1):

                                              macro-P=\frac{1}{n} \sum _{i=1}^{n}P_{i}

                                              macro-R=\frac{1}{n} \sum _{i=1}^{n}R_{i}

                                              macro-F1=\frac{2\times macro-P \times macro-R}{macro-P + macro-R}

  • 另一种做法就是先对混淆矩阵的各个元素取平均,记为\overline{TP}\overline{FP}\overline{TN}\overline{FN},再计算”微准确率“(micro-P)”微召回率“(micro-R)”微F1“(micro-F1):

                                              micro-P=\frac{\overline{TP}}{\overline{TP}+\overline{FP}}

                                              micro-R=\frac{\overline{TP}}{\overline{TP}+\overline{FN}}

                                              micro-F1=\frac{2\times micro-P \times micro-R}{micro-P + micro-R}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值