F1 score概念及python实现

F1score是衡量分类模型性能的指标,综合考虑了精确率和召回率。在多分类问题中,它通过调和平均数来评估。Python中可以使用sklearn库的f1_score函数计算,根据average参数选择合适的平均方式,如'weighted'用于类别不平衡的情况,'macro'用于不考虑类别不平衡的宏观平均。

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

一、F1 score概念?

F1 score是分类问题的一个衡量指标,一些多分类问题的机器学习竞赛,常把F1 score作为最终评测的方法。它是精确率和召回率的调和平均数,取值0-1之间。

F1 score认为召回率和精确率同样重要,而F2认为召回率的重要程度是精确率的2倍,F0.5则认为召回率的重要程度是精确率的一半。

F_{1}=2\frac{precision\cdot recall}{precision+recall}

要明确几个概念

  • TP(True Positive): 被判定为正样本,实际为正样本
  • TN(True Negative): 被判定为负样本,实际为负样本
  • FP(False Positive): 被判定为正样本,实际为负样本
  • FN(False Negative): 被判定为负样本,实际为正样本
  • accuracy:准确率,针对所有样本而言,即所有实际正负样本中,判定正确的样本所占的比例。accuracy = (TP + TN)/(TP + TN + FP + FN)
  • precision:精确率(又称为查准率),针对所有判定为正的样本而言,即所有判定为正的样本中,实际为正的样本所占的比例。precision = TP/(TP + FP)
  • recall:召回率(又称为查全率),针对所有实际为正的样本而言,即所有实际为正的样本中,判定为正的样本所占的比例。recall = TP/(TP + FN)

注意:上述所有正负样本描述是针对二分类问题而言,如果是多分类问题,则上述正样本代表第k类样本,负样本代表所有其他类样本。

 

二、F1 score如何计算?

  1. 首先分别计算每一类样本的精确率precision_{k}和召回率recall_{k}
  2. 然后分别计算每一类的F1 score: f1_{k}=2\cdot \frac{precision_{k}\cdot recall_{k}}{precision_{k}+recall_{k}}
  3. 最后对所有类别的F1 score求均值,得到最终结果:F1 score=(\frac{1}{n}\sum f1_{k})^{2}

 

三、python如何实现?

可以通过调用sklearn包实现

函数介绍:

sklearn.metrics.f1_score(y_true, y_pred, labels=None, pos_label=1, average='binary', sample_weight=None)

  • y_true: 真实类别,1d array-like, or label indicator array / sparse matrix.
  • y_pred: 预测类别,1d array-like, or label indicator array / sparse matrix.
  • average: string,[None, ‘binary’(default), ‘micro’, ‘macro’, ‘samples’, ‘weighted’],如果二分类则选binary,如果考虑类别的不平衡性,需要计算类别的加权平均,则使用‘weighted’;如果不考虑类别的不平衡性,计算宏平均,则使用‘macro’。

代码示例:

from sklearn.metrics import f1_score

y_true = [0,0,0,1,1,2]
y_pred = [0,0,1,1,2,2]

print(f1_score(y_true, y_pred, average='weighted'))
print(f1_score(y_true, y_pred, average='macro'))

 

 

参考:

https://blog.csdn.net/qq_14997473/article/details/82684300

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值