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中__set_name__的具体使用

    python中__set_name__的具体使用

    在Python中,我们可以通过__set_name__方法来实现一些特殊的操作,本文主要介绍如何在Python中实现__set_name__方法,并且给出一些实际应用的示例,感兴趣的可以了解一下
    2024-01-01
  • python编写WAF与Sqlmap结合实现指纹探测

    python编写WAF与Sqlmap结合实现指纹探测

    这篇文章主要为大家介绍了python编写WAF指纹探测并与Sqlmap结合的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Tensorflow使用支持向量机拟合线性回归

    Tensorflow使用支持向量机拟合线性回归

    这篇文章主要为大家详细介绍了Tensorflow使用支持向量机拟合线性回归,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • Python读取大量Excel文件并跨文件批量计算平均值的方法

    Python读取大量Excel文件并跨文件批量计算平均值的方法

    这篇文章主要介绍了Python读取大量Excel文件并跨文件批量计算平均值,介绍基于Python语言,实现对多个不同Excel文件进行数据读取与平均值计算的方法,需要的朋友可以参考下
    2023-02-02
  • 使用Python字符串访问与修改局部变量的实现代码

    使用Python字符串访问与修改局部变量的实现代码

    这篇文章主要介绍了使用Python字符串访问与修改局部变量,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • 在Django框架中运行Python应用全攻略

    在Django框架中运行Python应用全攻略

    这篇文章主要介绍了在Django框架中运行Python应用全攻略,在这之前必须搭建好简单的视图和模版,接下来便是本文中所述的核心内容应用配置,需要的朋友可以参考下
    2015-07-07
  • conda虚拟环境默认路径的修改方法

    conda虚拟环境默认路径的修改方法

    最近发现我linux系统中的/dev/root目录利用率占用了100%,这对后面文件的操作带来了一些麻烦,下面这篇文章主要给大家介绍了关于conda虚拟环境默认路径的修改方法,需要的朋友可以参考下
    2022-07-07
  • Python嵌套循环的使用

    Python嵌套循环的使用

    本文主要介绍了Python嵌套循环的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2023-02-02
  • python保存网页图片到本地的方法

    python保存网页图片到本地的方法

    这篇文章主要为大家详细介绍了python保存网页图片到本地的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • python pymysql库的常用操作

    python pymysql库的常用操作

    这篇文章主要介绍了python pymysql库的常用操作,帮助大家更好的利用python操作数据库,感兴趣的朋友可以了解下
    2020-10-10

最新评论