sklearn.metrics.f1_score 使用方法_壮壮不太胖^QwQ的博客-程序员秘密

技术标签: python  机器学习  

原网站:sklearn官网

使用sklearn计算 F1 score

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

计算F1分数,也称为平衡F分数或F测度

F1分数可以解释为精度和查全率的加权平均值,其中F1分数在1时达到最佳值,在0时达到最差值。精度和查全率对F1分数的相对贡献相等。F1分数的公式为:

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

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

参数说明:

y_true:1d数组,或标签指示符数组/稀疏矩阵
		基本事实(正确)目标值。

y_pred:1d数组,或标签指示符数组/稀疏矩阵
		分类器返回的估计目标。

labels:list,optional
		包括when的标签集,以及if的顺序。可以排除数据中存在的标
		签,例如,以忽略多数否定类别的方式计算多类平均值,而数
		据中不存在的标签将导致宏平均值中的0成分。对于多标签目
		标,标签是列索引。默认情况下,和 中的所有标签均按排序顺
		序使用。
		average != 'binary'average is Noney_truey_pred

pos_label:strint,默认值为1
	 	   要报告是否average='binary'以及数据是否为二进制的类。如果数据是
		   多类或多标签的,则将被忽略;设置,labels=[pos_label]并且只会报
		   告该标签的得分。average != 'binary'

average:string, [None, ‘binary’ (default), ‘micro’, ‘macro’, ‘samples’, ‘weighted’]
		 对于多类/多标签目标,此参数是必需的。如果为None,则返
		 回每个班级的分数。否则,这将确定对数据执行的平均类型:

	'binary':仅报告由指定的类的结果pos_label。
			  仅在目标(y_{
    true,pred})为二进制时适用。

	'micro':通过计算正确,错误和否定的总数来全局计算指标。

	'macro':计算每个标签的指标,并找到其未加权平均值。
			 这没有考虑标签不平衡。

	'weighted':计算每个标签的指标,并找到其平均权重(受支持)
				(每个标签的真实实例数)。
			    这改变了“宏观”以解决标签的不平衡。
			    这可能导致F得分不在精确度和召回率之间。

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

sample_weight:array-like of shape (n_samples,), default=None
			   样品重量。

zero_division:“warn”, 0 or 1, default=”warn”
			   设置除法为零(即所有预测和标签均为负)时
			   返回的值。如果设置为“ warn”,则该值为0,
			   但也会发出警告。

返回值:

f1_score:float or array of float, shape = [n_unique_labels]
		  二进制分类中的阳性类别的F1分数,
		  或者对于多类别任务,每个类别的F1分数的加权平均值。

Notes
When true positive + false positive == 0, precision is undefined; When true positive + false negative == 0, recall is undefined. In such cases, by default the metric will be set to 0, as will f-score, and UndefinedMetricWarning will be raised. This behavior can be modified with zero_division.

举例:

>>> from sklearn.metrics import 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.26...
>>> f1_score(y_true, y_pred, average='micro')
0.33...
>>> f1_score(y_true, y_pred, average='weighted')
0.26...
>>> f1_score(y_true, y_pred, average=None)
array([0.8, 0. , 0. ])
>>> y_true = [0, 0, 0, 0, 0, 0]
>>> y_pred = [0, 0, 0, 0, 0, 0]
>>> f1_score(y_true, y_pred, zero_division=1)
1.0...
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46072771/article/details/105757363

智能推荐

(二)CAS统一认证——自定义登录(数据库)_abstractpreandpostprocessingauthenticationhandler_xhthy00的博客-程序员秘密

简介关于CAS的登录流程,overlay中只是一个简单的用户名密码登录**casuser::Mellon**,这个肯定是不能满足日常生产的需求的,在日常开发中遇到最通用的情况就是从数据库中进行身份认证密码的比对等等,那么这篇文章将提供一种自定义登录认证的解决方案。两个重要的接口抽象定义1.AbstractPreAndPostProcessingAuthenticationHandler认证handler该接口中定义了两个方法:doAuthentication:该方法提供了一套认证的逻辑,是我

maven设置------setting.xml文件学习_飞神带你飞的博客-程序员秘密

http://blog.csdn.net/tomato__/article/details/13025187快速预览maven的配置文件为settings.xml,在下面路径中可以找到这个文件,分别为:    ------ $M2_HOME/conf/settings.xml:全局设置,在maven的安装目录下;    ------ ${user.home}

ARP协议的报文格式_jsd2honey的博客-程序员秘密

ARP协议的报文格式结构ether_header定义了以太网帧首部;结构arphdr定义了其后的5个字段,其信息用于在任何类型的介质上传送ARP请求和回答;ether_arp结构除了包含arphdr结构外,还包含源主机和目的主机的地址。定义常量#define EPT_IP   0x0800    /* type: IP */#define EPT_ARP   0

linux(centos7.7)安装seafile7.0教程_centos seafile_ssgy1312的博客-程序员秘密

安装自己的私有云盘,首先需要有虚拟主机,推荐vultr的虚拟主机,按月付费,价格实惠。注册链接 vultr注册本文档主要用来说明如何使用预编译安装包来部署 Seafile 服务器。参考seafile官方的文档,但是官方文档太过简略,可操作性也不是很强。所以写这个文档,供大家参考。seafile服务器端建议使用 MySQL 数据库,并将 Seafile 部署在 Nginx 或者 Apache 上...

强制删除WPS 遗留的qingnse64.dll_恩博同学的博客-程序员秘密

基本思路就是,因为qingnse64.dll被强制注入到桌面窗口管理器中的进程中,因此只要系统开启桌面窗口管理器就无法删除这个动态链接库。然而对于我这种强迫症来说,删不掉是睡不着觉的,所以。。。找到要删除的这个DLL的位置,复制路径C:/XX/XX/首先在资源管理器找到进程explorer.exe,然后右键停止此时桌面和资源管理器就不能使用了,桌面变黑。接着在任务管理器中选...

三维点云数据集_coco数据集有点云吗_键盘独行侠的博客-程序员秘密

欧特克的研究——数字210金 欧特克的样品扫描和图像数据研究办公室。 自治系统实验室(乙) 激光和Kinect结构化和非结构化的数据环境。 这一组有一个有用的相关链接列表以及类似的链接 数据。 加拿大行星模拟地形三维映射的数据集 激光扫描非结构化地形从罗孚平台。 包括Matlab代码数据解析。 徕卡呈规则(投影数据) 激光扫描数据的示例数据库。 点云分类(罗蒙诺索夫莫斯科国立大学) 航空激...

随便推点

/etc/udev/rules.d/rules.d/70-persistent-net.rules_weixin_33824363的博客-程序员秘密

[email protected]:~$cat /etc/udev/rules.d/70-persistent-net.rules# PCI device 0x10ec:0x8139 (8139too)SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:e0:4c:90:06:83", ATTR{typ...

阿里云域名购买至备案流程_域名备案需要对公账户吗_慎思知行的博客-程序员秘密

1、阿里云注册https://www.aliyun.com/activity/daily/bestoffer?userCode=ltzg7p3k注册,用户名、密码、手机号。2、账户认证下载阿里云app,使用注册的用户名登录pc端登录阿里云账户,点击实名认证,选择实名认证方式。备案需采用法人扫脸或对公账户打款方式验证,建议使用法人扫脸方式,比较快捷。法人扫脸认证流程:填写基本信息(公司名称、代码号、注册地址、营业执照),获得二维码。使用阿里云app扫码,根据提示进行法人扫脸验证。验

C++中的逻辑操作符重载_SlowIsFastLemon的博客-程序员秘密

文章目录1 C++中的逻辑操作符重载1.1 逻辑操作符的原生语义1.2 重载逻辑操作符1.3 逻辑操作符重载的建议1 C++中的逻辑操作符重载1.1 逻辑操作符的原生语义逻辑操作符的原生语义如下:操作数只有两种值(true和flase)。逻辑表达式不用完全计算就能确定最终值,短路原则。最终结果只能是true或者false。我们先来看一下逻辑表达式的输出结果:#include &...

关于tf.train.batch和tf.train.string_input_producer的区别(输入流程简介)_撒旦即可的博客-程序员秘密

前面其实对输入tensorflow数据集的构造和输入那一块的认知比较模糊,所以抽了点时间解析了一下官方代码。大概顺序如下:1.输入所需图片的地址,然后放到tf.train.string_input_producer中进行管理,注意tf.train.string_input_producer中只是图片的地址,不是图片的值。2.然后用各种读取器读取地址中的数据(图片,标签),用的是...

数据结构用c语言描述题库,数据结构(C语言)【经典题库】含答案_叶梵舒的博客-程序员秘密

《数据结构与算法》复习题选择题1.在数据结构中,从逻辑上可以把数据结构分为 C 。A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据...

算法:最长回文子串。_最大回文子串算法_孤芳不自賞的博客-程序员秘密

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

推荐文章

热门文章

相关标签