【机器学习笔记】 模型评估:查准率、查全率和F1

前言

        错误率与精度经常用来衡量一个模型的好坏,但这两项指标并不能满足所有的需求。以西瓜书中的例子来说,农夫拉来一车西瓜,错误率可以衡量出有多少比例的瓜被判别错误,而我们关心的是好瓜,或说好瓜中有多少比例被判别为了好瓜,此时仅仅是错误率这一个指标就不够用了。

混淆矩阵

        对于二分类问题,可以根据样本的真实类别与学习器预测样本的类别组合,划分为真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative),分别用TP、FP、TN、FN表示,这四种样例之和就等于样例总数,从而可以通过分类结果做出混淆矩阵。

真实情况 预测结果
正例 反例
正例 TP FN
反例 FP TN

查准率和查全率

        查准率表示在预测为正的所有的样本当中,真实的正例所占的比例,记作P,又称为正确率。

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

        查全率表示真实的样本中,被预测为正例的样本数量所占的比例,记作R,又称为召回率。

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

P-R曲线

        查准率和查全率是一对矛盾的度量,一般来说,查准率高时,查全率会偏低,反之亦然。我们怎样根据P和R去选择一个性能更优的学习器呢?通常,我们可以根据学习器的预测结果对样例进行排序,排在前面的就是学习器认为最有可能为正例的样本,排在后面的则是学习器认为最不可能为正例的样本。按照排序结果逐个把样本当做正例进行预测,也就是将排序后的样本逐个作为通往正例的“门槛”,每次都计算出查全率和查准率,以查准率作为纵轴,查全率作为横轴,可以作出每个学习器的P-R曲线。

【机器学习笔记】 模型评估:查准率、查全率和F1_第1张图片

        从图中可以看出,A是全包围C曲线的,那我们认为A的性能优于C,对于B和A这种有交叉的则无法判断二者孰优孰劣,因此,采用“平衡点”(Break-Even Point,简称BEP)去进一步衡量学习器的性能 ,它是查准率等于查全率时的取值,图中C的BEP为0.64小于A的0.8,因此可以认为A的性能优于C。

F1

        BEP过于简化,更常用的事F1度量,F1是基于查准率和查全率的调和平均定义的,\frac{1}{F1}=\frac{1}{2}\cdot (\frac{1}{P}+\frac{1}{R}),可以推导出F1=\frac{2\times P\times R}{P+R}

        在有些应用中,对于查准率和查全率的重视程度有所不同,因此可以使用F1的一般形式F_{\beta }F_{\beta }是通过查准率和查全率的加权调和平均推导出的,F_{\beta}=\frac{(1+\beta^{2})\times P \times R}{(\beta^{2}\times P)+R},其中,\beta>0度量了查全率对查准率的相对重要性, \beta>1对查全率有更大影响,\beta<1时对查准率有更大影响。

        有时我们进行多次训练测试,每次得到一个混淆矩阵;或是在多个数据集上进行训练测试,得到n个混淆矩阵,我们希望在n个二分类混淆矩阵上考察查准率和查全率。

        第一种方法是在n个混淆矩阵上分别计算出n个P和R,再计算平均值,这样就可以得到宏查准率(macro-P)、宏查全率(macro-R)以及宏F1(macro-F1)。

        第二种方法是先将混淆矩阵的对应元素进行平均,得到\bar{TP} \bar{FP} \bar{TN} \bar{FN},再基于这些平均值计算出微查准率(micro-P)、微查全率(micro-R)以及微F1(micro-F1)。

 

 

你可能感兴趣的:(机器学习,西瓜书,机器学习)