机器学习中的F1-score

一、什么是F1-score

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

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

此外还有F2分数和F0.5分数。F1分数认为召回率和精确率同等重要,F2分数认为召回率的重要程度是精确率的2倍,而F0.5分数认为召回率的重要程度是精确率的一半。计算公式为:

F_{\beta }=\left (1+\beta ^{2} \right )\cdot \frac{precision\cdot recall}{\left (\beta ^{2}\cdot precision \right )+recall}

G分数是另一种统一精确率和的召回率系统性能评估标准,G分数被定义为召回率和精确率的几何平均数。

G=\sqrt{precision\cdot recall}


二、计算过程

1. 首先定义以下几个概念:

TP(True Positive):预测答案正确

FP(False Positive):错将其他类预测为本类

FN(False Negative):本类标签预测为其他类标

2. 通过第一步的统计值计算每个类别下的precision和recall

精准度 / 查准率(precision):指被分类器判定正例中的正样本的比重

precision_{k}=\frac{TP}{TP+FP}

召回率 / 查全率 (recall):指的是被预测为正例的占总的正例的比重

recall_{k}=\frac{TP}{TP+FN}

另外,介绍一下常用的准确率(accuracy)的概念,代表分类器对整个样本判断正确的比重。

accuracy=\frac{TP+TN}{TP+TN+FP+FN}

3. 通过第二步计算结果计算每个类别下的f1-score,计算方式如下:

f1_{k}=\frac{2\cdot precision_{k}\cdot recall_{k} }{precision_{k}+recall_{k}}

4. 通过对第三步求得的各个类别下的F1-score求均值,得到最后的评测结果,计算方式如下:

score=(\frac{1}{n}\sum f1_{k})^{2}


三、python实现

可通过加载sklearn包,方便的使用f1_score函数。

函数原型:

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_pred = [0, 1, 1, 1, 2, 2]
y_true = [0, 1, 0, 2, 1, 1]

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

分析上述代码,

对于类0:TP=1,FP=0,FN=1,precision=1,recall=1/2,F1-score=2/3,Weights=1/3

对于类1:TP=1,FP=2,FN=2,precision=1/3,recall=1/3,F1-score=1/3,Weights=1/2

对于类2:TP=0,FP=2,FN=1,precision=0,recall=0,F1-score=0,Weights=1/6

宏平均分数为:0.333;加权平均分数为:0.389

  • 172
    点赞
  • 707
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
近年来,随着科技的快速发展,计算机相关的职业越来越受到重视。华为作为全球领先的科技公司,已经开始在新兴技术上进行布局,其华为OD是重点发力的领域之一。华为OD是一套完整的云计算解决方案,包括了云端计算、边缘计算、混合云等多个方面。随着OD的逐步完善,需要各种计算机相关专业的人才来支持其发展。为了吸引人才,华为OD机试开始逐步普及。下面是对华为OD机试2023年最新题库的免费解析。 第一部分是选择题,主要是基础知识的考察。第二部分是实验题,目的在于考察测试人员的实践能力。考生需要开发一款基于华为OD的应用程序,进行整个产品的设计开发和测试。在开发过程,需要考虑如何使用OD的各项服务和资源,包括存储、计算和网络等。在测试过程,需要进行功能测试、性能测试和安全测试等多个方面的测试。同时,还需要进行最终的用户验收测试,确保产品的质量。 对于考生来说,通过华为OD机试的考核,不仅可以验证自己在计算机方面的技术水平,同时也可以增加自己的竞争力和就业机会。作为一家技术领先的企业,华为OD的市场需求将逐渐增加。拥有OD相关技能的专业人才将变得越来越重要。因此,通过参加华为OD机试,对于计算机相关专业的考生来说,是一个难得的机会。相信在未来的职场,拥有OD相关技能的人才将能够更好地适应市场需求,取得更高的职业成就。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值