多标签分类评价指标HL,RL,OE, Cov的计算及Python实现

本文介绍了多标签分类的四种评价指标——汉明损失(HL)、排序损失(RL)、错误率(OE)和覆盖率(Cov),并提供了相应的Python实现。通过实例解释了这些指标的计算方法,帮助理解模型在多标签任务中的表现。
摘要由CSDN通过智能技术生成

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个,标签为0的标签有3个,则基数对有2*3=6个,样本的排序损失为1/6=0.1666667

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值