多标签分类评价指标HL,RL,OE, Cov的计算及Python实现_多标签one error指标python代码-程序员宅基地

技术标签: 机器学习  

AP的计算见本人另一篇博客
HL,RL, OE, Cov是多标签分类的评价指标,通常越小表明模型越好。

一,HL计算
公式:
在这里插入图片描述
大意是,有N个样本的数据集,对每个样本的标签集部分,计算真实标签与预测标签部分有多少个不同的部分,
举个栗子:
样本1,y_true = [1, 0, 1, 0, 0],y_pred = [0, 1, 1, 0, 0],可以看到它有2个预测出错的部分,记样本1汉明损失为2/5 = 0.4
样本2,y_true = [1, 0, 1, 0, 1],y_pred = [1, 1, 0, 0, 0],可以看到它有3个预测出错的部分,记样本1汉明损失为3/5 = 0.6
对于总的样本集,汉明损失为(0.4+0.6)/ 2 = 0.5
程序:

import numpy as np
from sklearn import metrics
label = np.array([[1, 0, 1, 0, 0], [1, 0, 1, 0, 1]])
pred = np.array([[0, 1, 1, 0, 0], [1, 1, 0, 0, 0]])
print(metrics.hamming_loss(label, pred))

结果:
在这里插入图片描述
二,RL计算
公式:
在这里插入图片描述
这一大坨我估计很多人第一眼看到就不想看第二眼,
在这里插入图片描述
翻译成人话,就是计算标签集中的排序损失。假设数据集有N个样本,对每个样本计算它的标签集中为1的标签的概率小于标签集中为0的概率的标签个数除以标签为1的标签个数乘以标签为0的标签个数。
举个栗子:
样本1,真实标签集y_true = [1, 0, 1, 0, 0],标签预测概率值y_score = [0.3, 0.4, 0.5, 0.1, 0.15],样本1有2个预测为1的标签,即概率为0.3和概率为0.5的标签,一个个来看,对概率为0.3的标签,在整个标签集中,标签为0的标签中,有概率为0.4的标签概率比它大,记为1;对概率为0.5的标签,在整个标签集中,标签为0的标签中,没有标签的概率值比它大,记为0。则样本1的所有标签的排序损失标签为1个,标签为1的标签有2个,标签为0的标签有3个,则基数对有2*3=6个,样本的排序损失为1/6=0.1666667

样本2,真实标签集y_true = [1, 0, 1, 0, 1],标签预测概率值y_score = [0.4, 0.5, 0.7, 0.2, 0.6],样本1有3个预测为1的标签,即概率为0.4、概率为0.7和概率为0.7的标签,一个个来看,对概率为0.4的标签,在整个标签集中,标签为0的标签中,有概率为0.5的标签概率比它大,记为1;对概率为0.7的标签,没有标签的概率值比它大,记为0;对概率为0.6的标签,没有标签的概率值比它大,记为0。则样本1的所有标签的排序损失标签为1个,标签为1的标签有2个,标签为

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012841977/article/details/106309381

智能推荐

Oracle备份的几种方式_oracle数据库备份-程序员宅基地

文章浏览阅读1.2w次,点赞17次,收藏106次。Oracle备份的几种方式这里使用Oracle 12C来大概演示说明一下rman的基本用法,这里不会深入讨论,因为本人也只是刚刚才接触,只是结合了网上的一些文章以及自己的实践来总结并拿出来大家学习,谢谢目录一、关于备份与恢复二、逻辑备份(expdp和impdp)三、物理备份四、数据库日常备份计划及脚本参考一、关于备份与恢复1、备份定义备份就是把数据库复制到转储设备的过程。其中,转储设备是指用于放置数据库副本的磁带或磁盘。通常也将存放于转储设备中的数据库的副本称为原数据库的备份或转储。备_oracle数据库备份

android手机连接windows,Windows PC连接Android adb shell的方法-程序员宅基地

文章浏览阅读630次。今天突发奇想,想用跟笔记本连接的键鼠操作自己的安卓设备(具体操作先挖个坑之后再填)。首先遇到的问题就是,如何用Windows PC连接自己的安卓设备,因为笔者的笔记本的USB接口有限,又有多部安卓设备,还想同时对多部Android设备进行调试,以下是探索到方法:一、查看Windows的环境变量:win徽标键+R 打开运行框键入cmd 打开命令指示符echo %PATH%..._windows usb android 命令

Android Studio查看签名文件sha1和MD5的方法_黄油sha1-程序员宅基地

文章浏览阅读6.2k次。android在生成了应用签名文件后,如果我们想要查看签名文件的sha1和md5,该怎么操作呢??下面我们来看看。 把android studio界面左下角的Terminal终端窗口打开,进入JDK的bin目录,因为Terminal默认的路径是从android studio安装的那个盘开始,所以要自己手动操作,进入到jdk安装目录下的bin文件夹下,在这里我的android studio安装目_黄油sha1

有弹性的ScrollView_setmovefactor-程序员宅基地

文章浏览阅读1.1k次。我是个新手,虽然说现在这已经算是过时的效果,但是我还是要学会到底是怎么实现的,于是我把我之前看到的,别人实现的半成品,拿过来搞懂了之后,复写了一遍,然后添加了可以左右弹性移动的部分。然后添加了几个getter/setterimport android.content.Context;import android.graphics.Rect;import android.view.Motio_setmovefactor

WPS2017 电子表格/Excel文件保护密码忘记了?_wps表格忘记密码 怎么取消工作表保护-程序员宅基地

文章浏览阅读1.9w次,点赞5次,收藏19次。WPS2017 电子表格/Excel文件保护密码忘记了?废话不说,直入正题。妹妹有一个考勤表格的保护密码忘记了,要发上个月工资了,着急坏了,求助万能的老哥!隐约记得密码有10来位,不是数字,在着急用的前提下使用工具暴力破解密码完全来不及。想了一下,Excel文件的保密密码应该是使用弱加密算法直接保存在文件中的,想了两个办法:1、使用16进制编辑器,查接查看Excel文件_wps表格忘记密码 怎么取消工作表保护

战神Z7闪屏暗屏问题解决,战神Z7-KP7GC(其他也许也有)_神舟战神z7mkp7gc屏幕暗-程序员宅基地

文章浏览阅读5.7k次。神州笔记本性价比确实不错,但是问题也会有很多,特别不适合不太懂电脑的。直接主题:**主要问题就是:屏幕一直暗亮,暗亮,闪的很快。调节亮度到最低或者倒数第二档会没事,但是调高之后要么会突然变暗不闪,要么就是开始闪屏,总是不能把亮度调高。**没用多久的战神,突然就还是暗屏,闪屏,黑屏。就是调节亮度也不行,只能把亮度调到最暗,才不会闪屏,但是那么暗看不见啊!!!!!解决过程:我以前尝试拆机查..._神舟战神z7mkp7gc屏幕暗

随便推点

最新VMware虚拟机安装Linux系统-CentOS(详细教程)_vmware liunx centeros-程序员宅基地

文章浏览阅读985次,点赞24次,收藏16次。最近有网友反应初学Linx不会安装,找了许多教程不是太全面,总会遇到一些要不是启动不了,要不是连不上网,各种问题,为了让大家能够顺利的安装,小乐写了一个非常详细的教程,让大家少入坑。_vmware liunx centeros

C语言系列文章 | 初识C语言-程序员宅基地

文章浏览阅读940次,点赞39次,收藏29次。在VS上写代码,我们是需要创建项目的,直接新建项目就可以了。在项目中就可以添加源文件和头文件C语言把 .c 为后缀的文件称为源文件,把 .h 为后缀的文件称为头文件。C语言中有一批保留的名字的符号,比如:int、if、这些符号被称为保留字或者return关键字。关键字都有特殊的意义,是保留给C语言使用的程序员自己在创建标识符的时候是不能和关键字重复的关键字也是不能自己创建的。注:在C99标准中加⼊了inlinerestrict、 _Bool 、_Comploex_Imaginary。

java抽象类和接口总结-程序员宅基地

文章浏览阅读133次。一、抽象类二、接口三、抽象类和接口的区别一、抽象类在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:abstract void fun();  抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abs..._java抽象类与接口实验报告总结

linux I2C 驱动之----i2c驱动的注册过程(i2c_register_driver->driver_register(&driver->driver)->driver_find)_i2c_board_info 地址-程序员宅基地

文章浏览阅读1.4w次。Linux下i2c驱动的加载过程,分为i2c设备层、i2c adapter层与i2c核心层i2c设备驱动层也就是我们为特定i2c设备编写的驱动,下面是我自己理解的i2c驱动的注册过程在我们写的i2c设备驱动中,我们会调用i2c_add_driver()开始i2c设备驱动的注册,该函数调用i2c_register_driver完成所有注册操作static inline int i_i2c_board_info 地址

execlp使用例子_linux系统编程之进程(五):exec系列函数(execl,execlp,execle,execv,execvp)使用...-程序员宅基地

文章浏览阅读243次。本节目标: exec替换进程映像exec关联函数组(execl、execlp、execle、execv、execvp)一,exec替换进程映像在进程的创建上Unix采用了一个独特的方法,它将进程创建与加载一个新进程映象分离。这样的好处是有更多的余地对两种操作进行管理。当我们创建了一个进程之后,通常将子进程替换成新的进程映象,这可以用exec系列的函数来进行。当然,exec系列的函数也可以将当前进..._创建进程;在父进程中输出entering main process---;在子进程中使用execl()函数调

ArrayAdapter 和 Spinner_arrayadapter和spinner-程序员宅基地

文章浏览阅读702次。Spinner 和 ArrayAdapter_arrayadapter和spinner

推荐文章

热门文章

相关标签