空报率与漏报率是气象行业中常用来评估预报模型性能的指标。评估指标的不同实质上反映了任务需求的不同,因此不同的指标在对同一预报模型进行评估时将会得到不同的结果。这就意味着预报模型的‘好坏’往往是相对的,好的模型不仅取决于数据和算法本身,还取决于是否契合实际问题需要。那么何时使用空报率,又何时使用漏报率呢?本篇将通过混淆矩阵逐步带大家了解精准度、查准率等多种评估指标,以此深入认识空报率与漏报率的含义,并提供场景实例让读者体会评估指标如何反映实际任务需求。(文末顺带提供混淆矩阵的 python 可视化代码方便大家使用。)
一、混淆矩阵
混淆矩阵也称误差矩阵,经常被用来对分类问题进行误差分析。为便于理解,我们以二分类预报——晴雨预报为例,将其所有可能出现的预报情形与实况结果两两进行交叉组合,得到如下四个基础项。
混淆矩阵的四个基础项
真正例(True Positive):预报有雨 实况有雨
真反例(True Negative):预报无雨 实况无雨
假正例(False Positive):预报有雨 实况无雨(纳伪,第二类错误)
假反例(False Negative):预报无雨 实况有雨(弃真,第一类错误)
将上述各项的计数以矩阵的方式呈现(其实就是一张表格啦),就得到了该预报模型的混淆矩阵。矩阵中的每一列代表预测类别,每列的数值和代表预报该类别的总次数;而每一行代表实况观测的类别,每行的数值和代表了该类别实况中出现的总次数。
晴雨预报的混淆矩阵
直观可见,当混淆矩阵对角线数值越大时,模型总体性能越好。将其定量化,将矩阵中 TP 与 TN 的代数和除以矩阵所有元素的代数和称之为精准率(Accuracy)。
将 FN 与 FP 的代数和除以矩阵所有元素的代数和称之为错误率(Error Rate)。
二、细分评价指标
从定义式可知,精准率和错误率的大小受到多个变量的约束,难以精准契合实际问题需要,需要引入细分指标。
1.查准率与空报率
查准率又可称为击中率、准确率(Precision,为了方便记忆可记英文,以免与精准率混淆),其定义为真正例在预报正例中所在的占比。查准率是相对预报而言的,数值越大表示正例出现的可能性越大,预报可信度越高。(文末降水查准率为 259/(259+235)=0.524)
空报率与查准率有关联,被定义为假正例在所有预报正例中所在的占比,数值越大表示狼来了的可能性越大,由定义可知,空报率=1- 击中率。
2.查全率与漏报率
查全率又可称为召回率(recall),其定义为真正例在所有实况为正例中的所在占比。查全率是相对实况而言的,数值越大表示越疏而不漏,出现漏网之鱼的可能性越小。(文末降水查全率为 259/(259+242)=0.517)
漏报率与查全率有关联,被定义为假反例在所有实况为正例中的所在占比,可推知,漏报率=1- 查全率。
三、场景实例
查准率和查全率针对同一个模型时往往是一对矛盾的评价指标。查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。可以想象,在晴雨预报中为了使得查全率偏高,可以通过增加预报有雨的次数来实现,极端的,预报未来每天都有雨,查全率为 100%,但空报率极高,查准率极低;而为了使查准率偏高,可以通过只预报有把握的降水,诸如信号明显的系统性大雨过程,这么做势必会减少预报次数,极端的,当只预报了一次降水且正确时,查准率为 100%,但查全率则极低,许多小雨和中雨过程都漏报了。
那么如何运用查准率和查全率综合评价预报模型的性能,从而在多个模型中选择相对较优的呢?请关注本渣渣的同名微信公众号(搜索 气象学渣 或者 qixiangxuezha),等待下回分解哦。
