机器学习中的评价指标——Precision、 Recall 、AP and F1 score

本文详细介绍了分类模型的评估指标,包括Accuracy(精度)、ErrorRate(错误率)、Precision(精准度)、Recall(召回率)及其相互关系。此外,还讨论了P-R曲线下的面积(AP)和平均精度均值(mAP)。F1-score作为Precision和Recall的综合体现,以及Micro-F1和Macro-F1在多分类问题中的应用。这些指标对于理解和优化分类模型性能至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Accuracy(精度)和Error Rate(错误率)

是分类模型中最常见的两种性能度量指标,既适用于二分类任务,也适用于多分类任务。

对于分类模型 f 和大小为 n测试集 D,Accuracy的定义为:
Accuracy(f;D)=1n∑i=1n(f(xi)=labeli) Accuracy(f;D)=\frac{1}{n}\sum_{i=1}^n(f(x_i)=label_i) Accuracy(f;D)=n1i=1n(f(xi)=labeli)
Error Rate的定义为:
ErrorRate(f;D)=1n∑i=1n(f(xi)≠labeli) ErrorRate(f;D)=\frac{1}{n}\sum_{i=1}^n(f(x_i)\not=label_i) ErrorRate(f;D)=n1i=1n(f(xi)=labeli)
两者之间存在这样的关系:
Accuracy(f;D)=1−ErrorRate(f;D) Accuracy(f;D)=1-ErrorRate(f;D) Accuracy(f;D)=1ErrorRate(f;D)

Precision and Recall

Precision(精准度)Recall(召回率),它们仅适用于二分类问题

在这里插入图片描述

Precision的定义为:
Precision=TPTP+FP Precision=\frac {TP}{TP+FP} Precision=TP+FPTP
Recall的定义为:
Recall=TPTP+FN Recall=\frac {TP}{TP+FN} Recall=TP+FNTP
recision从预测结果角度出发,描述了二分类器预测出来的正例结果中有多少是真实正例,即该二分类器预测的正例有多少是准确的;Recall从真实结果角度出发,描述了测试集中的真实正例有多少被二分类器挑选了出来,即真实的正例有多少被该二分类器召回。

Precision和Recall通常是一对矛盾的性能度量指标。一般来说,Precision越高时,Recall往往越低。原因是,如果我们希望提高Precision,即二分类器预测的正例尽可能是真实正例,那么就要提高二分类器预测正例的门槛,例如,之前预测正例只要是概率大于等于0.5的样例我们就标注为正例,那么现在要提高到概率大于等于0.7我们才标注为正例,这样才能保证二分类器挑选出来的正例更有可能是真实正例;而这个目标恰恰与提高Recall相反,如果我们希望提高Recall,即二分类器尽可能地将真实正例挑选出来,那么势必要降低二分类器预测正例的门槛,例如之前预测正例只要概率大于等于0.5的样例我们就标注为真实正例,那么现在要降低到大于等于0.3我们就将其标注为正例,这样才能保证二分类器挑选出尽可能多的真实正例。

AP and mAP

那么有没有一种指标表征了二分类器在Precision和Recall两方面的综合性能呢?答案是肯定的。一个比较合理的指标是P-R曲线下面的面的大小,它在一定程度上表征了二分类器在Precision和Recall这两方面的综合性能。

AP就是Precision-recall 曲线下面的面积,通常来说一个越好的分类器,AP值越高

mAP是多个类别AP的平均值

在这里插入图片描述

从上面可以看出:

  • Precision和Recall往往是一对矛盾的性能度量指标;
  • 提高Precision == 提高二分类器预测正例门槛 == 使得二分类器预测的正例尽可能是真实正例;
  • 提高Recall == 降低二分类器预测正例门槛 == 使得二分类器尽可能将真实的正例挑选出来;
  • P-R曲线下面的面积表征了二分类器在Precision和Recall这两方面的综合性能;

F1 score and F1 MACRO

F1 score

Precision和Recall是一对矛盾的度量,一般来说,Precision高时,Recall值往往偏低;而Precision值低时,Recall值往往偏高。当分类置信度高时,Precision偏高;分类置信度低时,Recall偏高。为了能够综合考虑这两个指标,F-measure被提出(Precision和Recall的加权调和平均),即:
F1=2×P×RP+R F1=2\times\frac {P\times R}{P+R} F1=2×P+RP×R

F1的核心思想在于,在尽可能的提高Precision和Recall的同时,也希望两者之间的差异尽可能小。F1-score适用于二分类问题,对于多分类问题,将二分类的F1-score推广,有Micro-F1和Macro-F1两种度量。

Micro-F1

统计各个类别的TP、FP、FN、TN,加和构成新的TP、FP、FN、TN,然后计算Micro-Precision和Micro-Recall,得到Micro-F1。具体的说,统计出来各个类别的混淆矩阵,然后把混淆矩阵“相加”起来,得到一个多类别的混淆矩阵,然后再计算F1score

Macro-F1

我感觉更常用的是Macro-F1。统计各个类别的TP、FP、FN、TN,分别计算各自的Precision和Recall,得到各自的F1值,然后取平均值得到Macro-F1

从上面二者计算方式上可以看出,Macro-F1平等地看待各个类别,它的值会受到稀有类别的影响;而Micro-F1则更容易受到常见类别的影响。

参考:

1.https://zhuanlan.zhihu.com/p/78204581

2.https://cloud.tencent.com/developer/article/1673601

机器学习和模式识别中,f1_score, precision, recall, average precisionAP),以及区域下的面积(AUC)是常用于评估二分类模型的性能指标f1_score是综合评估模型精确率和召回率的指标,它的计算公式为:f1_score=2*(precision*recall)/(precision+recall)。f1_score可以用来评估模型在不同阈值下的表现,它的取值范围是0到1,数值越高表示模型表现越好。 precision(精确率)是指模型预测为正例中真正为正例的比例,计算公式为:precision=TP/(TP+FP)。precision的值越高,表示模型的误报率较低,即模型判断为正例的样本中真正为正例的概率越大。 recall(召回率)是指模型预测为正例的样本中真正为正例的比例,计算公式为:recall=TP/(TP+FN)。recall的值越高,表示模型的漏报率较低,即模型能够更好地捕捉到真正为正例的样本。 average precisionAP)是用于评估模型在不同阈值下的精度-召回率曲线Precision-Recall Curve)下的面积大小。AP的取值范围是0到1,数值越高表示模型分类的准确度越高。 AUC(Area Under Curve)是用于评估模型在不同阈值下的真正例率(True Positive Rate)和假正例率(False Positive Rate)之间的关系。AUC的取值范围是0到1,数值越接近1表示模型的分类准确度越高。 综上所述,f1_score, precision, recall, AP和AUC是常用于评估二分类模型性能的指标,可以用来衡量模型的分类准确度、误报率和漏报率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值