理解F1值

正确率虽然常见,但在某些场景下可能被误导,如垃圾邮件过滤器。F1值作为评价指标,综合了准确率和召回率,更好地评估分类器性能。准确率是预测为某一类的实例中,实际属于该类的比例;召回率是被正确识别为某类的实例占该类总实例的比例。F1值是两者调和平均数,用于平衡准确性和召回率。

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

选择评价指标时,了解它们的适用范围很重要。正确率应用范围很广,理解起来比较容易, 计算起来也方便。但是,造假很容易。换句话说,你很容易就能实现一个正确率很高,但实际用处不大的算法。

例如,对于垃圾邮件过滤器而言,其所处理的邮件很可能80%以上都是垃圾邮件,倘若一个过滤器把所有邮件都标为垃圾邮件,它没有实际应用价值,但是正确率却高达80%!

为了解决这个问题,我们使用另一个为常用的评价指标F1值(也被称为F值、F-measure, 或者其他变体)。

F1值是以每个类别为基础进行定义的,包括两大概念:准确率(precision)和召回率(recall)。 准确率是指预测结果属于某一类的个体,实际属于该类的比例。召回率是指被正确预测为某个类别的个体数量与数据集中该类别个体总量的比例。

精确率又可以称为查准率,召回率又可以称为查全率。我们以猫为例,介绍以下这两个定义。
precision:在你的分类器标记为猫的例子中,有多少是真猫的概率
recall:对于所有的真猫图片,你的分类器正确识别出了多少百分比。实际是猫的图片中,有多少被系统识别出来了。

对于这两个指标而言,我们可以分别对相关或者不相关的情况计算F1值,这里我们只关注相关这一类数据的分类情况。因此,准确率计算变为以下问题:在所有被预测的相关消息中,真正相关的比例占多少? 类似的,召回率转化为:数据所有相关消息中,有多少被真正预测为相关?

计算出准确率和召回率后,就能得到F1值,它是两者的调和平均数。

F1=2precision⋅recallprecision+recall F1 = 2\frac{precision \cdot recall}{precision + recall} F1=2precision+recallprecisionrecall


参考资料
《Python数据分析入门与实践》

### 关于机器学习中的精准率、召回率和F1 #### 定义与概念 在分类模型评估中,精准率(Precision)是指被正确识别为正样本的比例。具体来说,这是指所有预测为正类别的实例中有多少确实是正类别[^1]。 召回率(Recall),又称为灵敏度(Sensitivity),指的是实际为正类别的数据点中有多大比例被成功检测出来。换句话说,在所有的真正例中,有多少被找出来了。 F1分数(F1 Score)是一个综合考虑了精准率和召回率的指标,它等于二者的调和平均数。这个衡量标准对于不平衡的数据集特别有用,因为它试图找到两者之间的平衡点。 #### 计算方式 为了更好地理解这些术语及其相互关系,下面给出具体的计算公式: - **Precision** \( P \)= TP / (TP + FP) 其中TP表示真阳性(True Positive),FP代表假阳性(False Positive)。 - **Recall** \( R \)= TP / (TP + FN) 这里FN意味着假阴性(False Negative)。 - **F1-Score**: \[ F_1 = 2 * (\frac{P*R}{P+R})\] 这表明如果想要得到较高的F1得分,则既需要高的精确度也需要好的覆盖范围即高召回率。 #### Python实现例子 利用`sklearn.metrics`库可以很容易地获取上述三个评价指标的结果。以下是简单的Python代码片段展示如何操作: ```python from sklearn import metrics import numpy as np y_true = np.array([0, 1, 2, 0, 1, 2]) y_pred = np.array([0, 2, 1, 0, 0, 1]) precision = metrics.precision_score(y_true, y_pred, average='macro') recall = metrics.recall_score(y_true, y_pred, average='macro') f1 = metrics.f1_score(y_true, y_pred, average='macro') print(f'Precision: {precision}') print(f'Recall: {recall}') print(f'F1 Score: {f1}') ``` 通过这段程序能够快速获得给定真实标签(`y_true`)以及预测结果(`y_pred`)下的各项性能参数。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Einstellung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值