一开始接触查全率和查准率时遇到一个想不明白的地方:查准率和查全率是一对矛盾的度量。一般来说查准率高时,查全率往往偏低;反之同理。 可是为什么就不能两个都高呢?为了解决这个疑惑,决定还是记录一下原本感觉没必要记录的相关的知识。。。。。
首先呢,举一个例子。在信息检索中,我们常常关心“检索出得信息中有多少比例是用户感兴趣的”“用户感兴趣的信息中有多少被检索出来了”。查准率(precision)与查全率(recall)是为适用于此类需求的性能度量。对于二分类问题,可列出分类结果的“混淆矩阵”(confusion matrix)
预测结果 | 预测结果 | |
真实情况 | 正例 | 反例 |
正例 | TP | FN |
反例 | FP | TN |
查准率P与查全率R的定义为:
下面就回到了我遇到疑惑的地方,一般来说,查准率较高时,查全率往往偏低;而查全率高时,查准率往往偏低。 西瓜书中给了一个例子:若希望将好瓜尽可能多的选出来,则可通过增加选瓜的数量来实现,如果将所有的西瓜都选上,那么所有的好瓜也必然都被选上了,但这样查准率就会较低(个人理解为,在模型能力有限的情况下,如果想更少的遗漏正例,那么筛选的标准在相对的降低,从而查准率下降)若希望选出的瓜中好瓜比例尽可能高,则可以只挑选最有把握的瓜,但这样就难免会漏掉不少好瓜,使得查全率降低(个人理解就好比生产厂家提高了审核标准导致优质品产量降低)。 通常只有在一些简单任务中,才可能使查全率和查准率都很高。(所以归根到底还是解决问的方法相较复杂的问题而言能力不足啊)
在很多情况下,可根据学习器的预测结果对样例进行排序,排在前面的时学习器认为“最可能”是正例的样本,排在后面的是最不可能的。按此顺序逐个把正例进行预测,则每次可以计算出当前的查全率、查准率,并绘制P-R曲线。
P-R图直观的显示出学习器在样本总体上的查全率、查重率。 比较合理的判断学习器好坏的依据是比较P-R曲线下面积的大小,他在一定程度上表征了学习器在查准率和查全率上取得的相对“双高”的比例。但这个值不太容易估算,因此,人们设计了一些综合考虑查准率,查全率的性能度量。
“平衡点”(Break-Even Point)就是这样一个度量,它是“查准率=查全率”时的一个取值。但BEP还是过于简化了些,更常用的是一个叫做F1度量的家伙:
ALL为样例总数
F1度量的一般形式: ,能让我们表达出对查准率/查全率的不同偏好。其中
度量了查全率对查准率的相对重要性。
时退化为标准的F1;
时查全率有更大影响;
时查准率有更大影响。
有很多时候我们有多个二分类混淆矩阵,我们希望在n个二分类混淆矩阵上综合考察查准率和查全率。一种直接的做法是先在各混淆矩阵上分别计算出查准率和查全率再计算平均值,这样就得到“宏查准率”(macro-P)、”宏查全率“(macro-R),以及相应的”宏F1“
还可以先将各混淆矩阵的对应元素进行平均,得到TP、FP、TN、FN的平均值,再基于这些平均值计算出”微查准率“(micro-P)、"微查全率"(micro-R)和”微F1“(micro-F1):
,
,