sklearn.metrics 中的f1-score简介

 更新时间:2023年05月08日 11:12:26   作者:无脑敲代码,bug漫天飞  
这篇文章主要介绍了sklearn.metrics 中的f1-score简介,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1 f1_score,average='binary', 'macro', 'micro', 'weighted'

        F1得分可以解释为精确度和召回率的调和平均值,其中F1得分达到其最佳值为1,最差得分为0。精确度和召回率对F1得分的相对贡献相等。F1得分的公式为:

F1 = 2 * (precision * recall) / (precision + recall)

        在多类别和多标签的情况下,这是每个类别的F1得分的平均值,其权重取决于平均参数。

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

参数介绍:

        y_true:1d array,或label array/sparse matrix,Ground truth (correct) target values

        y_pred: 分类器返回的估计目标。

        pos_label:str or int, default=1,要报告 average = ‘ binary’且数据为二分类。如果数据是多类或多标签的,这将被忽略; 设置labels = [ pos _ label ]和average!= “binary”将只报告该标签的分数。

        average: 该参数是多类/多标签目标所必需的。如果没有,则返回每个类的分数。否则,这将确定对数据执行的平均类型:

'binary': 仅报告pos_label指定的类的结果。这仅适用于目标 (y_{true,pred}) 是二分类的。

'micro': 通过计算总真阳性、假阴性和假阳性来全局计算指标。

        权重倾向:每一个样本的权重都相同;
        适用环境:多分类不平衡,若数据极度不平衡会影响结果;

 'macro': 计算每个标签的指标,并找到它们的未加权平均值。

取值范围:每一类别的权重都相同;
适用环境:多分类问题,不受数据不平衡影响,容易受到识别性高(高recall、高precision)的类别影响;

'weighted': 计算每个标签的指标,并找到它们的平均加权支持 (每个标签的真实实例数)。这会改变 “macro” 以解决标签不平衡; 它可能导致F分数不在精度和召回率之间。

'samples': 计算每个实例的指标,并找到它们的平均值 (仅对于与accuracy_score不同的多标签分类有意义)。

代码展示:

二分类情况:

>>> from sklearn.metrics import precision_score, recall_score, f1_score
>>> y_true = [0, 1, 0, 0, 1, 0, 1]
>>> y_pred = [0, 1, 0, 0, 0, 1, 0]
# 计算二分类情况下的average = 'macro' 'micro' 'binary'
# 二分类情况下,也能用macro和micro,但一般用binary
>>> f1_score(y_true, y_pred,average='macro')
0.5333333333333332
>>> precision_score(y_true, y_pred, average='macro')
0.55
>>> recall_score(y_true, y_pred, average='macro')
0.5416666666666666
>>> precision_score(y_true, y_pred, average='micro')
0.5714285714285714
>>> recall_score(y_true, y_pred, average='micro')
0.5714285714285714
>>> f1_score(y_true, y_pred,average='micro')
0.5714285714285714
>>> f1_score(y_true, y_pred,average='binary')
0.4
>>> recall_score(y_true, y_pred, average='binary')
0.3333333333333333
>>> precision_score(y_true, y_pred, average='binary')
0.5
>>> f1_score(y_true, y_pred) # 二分类情况下,默认使用binary
0.4

多分类情况:

>>> from sklearn.metrics import precision_score, recall_score, f1_score
>>> y_true = [0, 1, 2, 0, 1, 2]
>>> y_pred = [0, 2, 1, 0, 0, 1]
>>> f1_score(y_true, y_pred, average='macro')
0.26666666666666666
>>> f1_score(y_true, y_pred, average='micro')
0.3333333333333333
>>> f1_score(y_true, y_pred, average=None) # 相当于binary,为每个类别计算binary的f1分数,但是不能输入binary,要输入None
array([0.8, 0. , 0. ])
>>> 0.8/3
0.26666666666666666

到此这篇关于sklearn.metrics 中的f1-score简介的文章就介绍到这了,更多相关sklearn.metrics 中f1-score内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python提取网页中超链接的方法

    Python提取网页中超链接的方法

    很多人在一开始学习Python,会打算用作爬虫开发。既然要做爬虫,首先就要抓取网页,并且从网页中提取出超链接地址。这篇文章给大家分享一个简单的方法,有需要的可以参考借鉴。
    2016-09-09
  • PyQt5中QTimer定时器的实例代码

    PyQt5中QTimer定时器的实例代码

    如果需要在程序中周期性地进行某项操作,比如检测某种设备的状态,就会用到定时器,本文主要介绍了PyQt5中QTimer定时器的实例代码,感兴趣的可以了解一下
    2021-06-06
  • Python与数据库的交互问题小结

    Python与数据库的交互问题小结

    这篇文章主要介绍了Python与数据库的交互,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Python进阶之高级用法详细总结

    Python进阶之高级用法详细总结

    今天带各位小伙伴学习一下Python高级语法,主要有Lambda表达式,map函数,filter函数,reduce函数,三大推导式等,文中有非常详细的介绍,需要的朋友可以参考下
    2021-05-05
  • Python EOL while scanning string literal问题解决方法

    Python EOL while scanning string literal问题解决方法

    这篇文章主要介绍了Python EOL while scanning string literal问题解决方法,本文总结出是数据库数据出现问题导致这个问题,需要的朋友可以参考下
    2015-04-04
  • 在ubuntu16.04中将python3设置为默认的命令写法

    在ubuntu16.04中将python3设置为默认的命令写法

    这篇文章主要介绍了在ubuntu16.04中将python3设置为默认python的方法,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-10-10
  • Python如何使用27行代码绘制星星图

    Python如何使用27行代码绘制星星图

    这篇文章主要介绍了Python如何使用27行代码绘制星星图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 深入学习python的yield和generator

    深入学习python的yield和generator

    这篇文章主要为大家详细介绍了python的yield和generator,针对python的生成器和yield关键字进行深入学习,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • pycharm 更改创建文件默认路径的操作

    pycharm 更改创建文件默认路径的操作

    今天小编就为大家分享一篇pycharm 更改创建文件默认路径的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python全栈之文件函数和函数参数

    Python全栈之文件函数和函数参数

    这篇文章主要为大家介绍了Python的文件函数和函数参数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12

最新评论