【漫话机器学习系列】070.汉明损失(Hamming Loss)

汉明损失(Hamming Loss)

汉明损失是多标签分类问题中的一种评价指标,用于衡量预测结果与实际标签之间的差异。它定义为预测错误的标签比例,即错误标签的个数占总标签数量的比值。

在多标签分类中,每个样本可以属于多个类别,因此汉明损失对每个样本的每个类别进行独立评估,而不关心类别之间的相关性。


公式

假设:

  • n 是样本总数。
  • L 是类别总数。
  • 是第 i 个样本的真实标签向量。
  • 是第 i 个样本的预测标签向量。

汉明损失的定义为:

其中:

  • 是指示函数,当真实标签 与预测标签 不相等时,取值为 1,否则为 0。

汉明损失的取值范围为 [0, 1],值越小表示预测越准确。


解释

  • 全对:如果预测完全正确(每个样本的每个标签都正确),汉明损失为 0。
  • 全错:如果预测完全错误(所有标签都被错误预测),汉明损失为 1。

示例

假设有 3 个样本和 4 个类别(标签):

真实标签矩阵 Y:

预测标签矩阵

逐元素比较错误标签数:

错误标签总数为 3,总标签数为

汉明损失:


代码实现

以下是 Python 中的实现代码:

import numpy as np
from sklearn.metrics import hamming_loss# 定义真实标签矩阵和预测标签矩阵
Y = np.array([[1, 0, 1, 0],[0, 1, 1, 0],[1, 1, 0, 0]
])Y_pred = np.array([[1, 0, 0, 0],[0, 1, 0, 0],[1, 0, 0, 0]
])# 计算汉明损失
hamming_loss_value = hamming_loss(Y, Y_pred)
print("汉明损失:", hamming_loss_value)

 

运行结果:

汉明损失: 0.25

 


优点

  1. 适用于多标签分类:汉明损失能够很好地处理多标签分类任务中的标签不平衡问题。
  2. 直观:它计算错误标签的比例,容易理解和解释。

缺点

  1. 忽略标签相关性:汉明损失将每个标签独立处理,无法捕捉类别之间的关系。
  2. 对类别数敏感:类别数多时,错误标签可能占比更高。

应用场景

  1. 多标签分类问题:如文本分类(一个文本可能属于多个类别)。
  2. 多目标预测问题:如图像标注(图像可能含有多种物体标签)。

汉明损失是多标签分类中一种重要的评价指标,通常与其他指标(如准确率、宏平均 F1 值等)结合使用,以全面评估模型性能。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/13077.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Meta推动虚拟现实:Facebook如何进入元宇宙时代

随着科技的不断进步,虚拟现实(VR)与增强现实(AR)技术的快速发展,世界正在逐步迈向一个全新的数字时代——元宇宙。而在这个革命性的转变中,Meta(前身为Facebook)作为全球…

C++ Primer 算术运算符

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…

【初阶数据结构和算法】八大排序算法之插入排序(直接插入排序、希尔排序及其对比)

文章目录 一、常见排序算法分类一、直接插入排序二、希尔排序三、直接插入排序和希尔排序性能对比 一、常见排序算法分类 常见的排序算法有八种,我们简单盘点一下 插入排序:直接插入排序、希尔排序选择排序:直接选择排序、堆排序交换排序&am…

大模型综述一镜到底(全文八万字) ——《Large Language Models: A Survey》

论文链接:https://arxiv.org/abs/2402.06196 摘要:自2022年11月ChatGPT发布以来,大语言模型(LLMs)因其在广泛的自然语言任务上的强大性能而备受关注。正如缩放定律所预测的那样,大语言模型通过在大量文本数…

4种架构的定义和关联

文章目录 **1. 各架构的定义****业务架构(Business Architecture)****应用架构(Application Architecture)****数据架构(Data Architecture)****技术架构(Technology Architecture)*…

实时波形与频谱分析———傅立叶变换

实时波形与频谱分析:一个交互式动画演示 在信号处理领域,时域波形和频域频谱是理解信号特性的重要工具。通过时域波形,我们可以直观地观察信号随时间的变化,而频域频谱则揭示了信号中所包含的频率成分及其幅值。为了帮助大家更好…

数据结构:时间复杂度

文章目录 为什么需要时间复杂度分析?一、大O表示法:复杂度的语言1.1 什么是大O?1.2 常见复杂度速查表 二、实战分析:解剖C语言代码2.1 循环结构的三重境界单层循环:线性时间双重循环:平方时间动态边界循环&…

基于Springboot+vue的租车网站系统

基于SpringbootVue的租车网站系统是一个现代化的在线租车平台,它结合了Springboot的后端开发能力和Vue的前端交互优势,为用户和汽车租赁公司提供了一个高效、便捷、易用的租车体验和管理工具。以下是对该系统的详细介绍: 一、系统架构 后…

[x86 ubuntu22.04]进入S4失败

目录 1 问题描述 2 解决过程 2.1 查看内核日志 2.2 新建一个交换分区 2.3 指定交换分区的位置 1 问题描述 CPU:G6900E OS:ubuntu22.04 Kernel:6.8.0-49-generic 使用“echo disk > /sys/power/state”命令进入 S4,但是无法…

Java 大视界 -- Java 大数据在智慧文旅中的应用与体验优化(74)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

使用Python和TensorFlow/Keras构建一个简单的CNN模型来识别手写数字

一个简单的图像识别项目代码示例,使用Python和TensorFlow/Keras库来训练一个基本的CNN模型,用于识别MNIST手写数字数据集,并将测试结果输出到HTML。 代码运行效果截图: 具体操作步骤: 1. 安装所需的库 首先,确保你已经安装了所需的Python库: pip install tensorflow…

Redis --- 使用zset处理排行榜和计数问题

在处理计数业务时,我们一般会使用一个数据结构,既是集合又可以保证唯一性,所以我们会选择Redis中的set集合: 业务逻辑: 用户点击点赞按钮,需要再set集合内判断是否已点赞,未点赞则需要将点赞数1…

kamailio-osp模块

该文档详细讲解了如何在Kamailio中配置和使用OSP模块(Open Settlement Protocol Module),以实现基于ETSI标准的安全多边对等互联(Secure Multi-Lateral Peering)。以下是核心内容的总结: 1. 模块功能 OSP模…

北大AGI与具身智能评估新范式!Tong测试:基于动态具身物理和社会互动的评估标准

作者:Yujia Peng, Jiaheng Han, Zhenliang Zhang, Lifeng Fan, Tengyu Liu, Siyuan Qi, Xue Feng, Yuxi Ma, Yizhou Wang, Song-Chun Zhu 单位:北京通用人工智能研究院国家通用人工智能重点实验室,北京大学人工智能研究所,北京大…

开发板上Qt运行的环境变量的三条设置语句的详解

在终端中运行下面三句命令用于配置开发板上Qt运行的环境变量: export QT_QPA_GENERIC_PLUGINStslib:/dev/input/event1 export QT_QPA_PLATFORMlinuxfb:fb/dev/fb0 export QT_QPA_FONTDIR/usr/lib/fonts/设置成功后可以用下面的语句检查设置成功没有 echo $QT_QPA…

一文讲解Spring如何解决循环依赖

Spring 通过三级缓存机制来解决循环依赖: 一级缓存:存放完全初始化好的单例 Bean。 二级缓存:存放正在创建但未完全初始化的 Bean 实例。 三级缓存:存放 Bean 工厂对象,用于提前暴露 Bean。 试问:三级缓存解决循环依…

Linux+Docer 容器化部署之 Shell 语法入门篇 【Shell 替代】

🎀🎀Shell语法入门篇 系列篇 🎀🎀 LinuxDocer 容器化部署之 Shell 语法入门篇 【准备阶段】LinuxDocer 容器化部署之 Shell 语法入门篇 【Shell变量】LinuxDocer 容器化部署之 Shell 语法入门篇 【Shell数组与函数】LinuxDocer 容…

[c语言日寄]赋值操作对内存的影响

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…

HTML5 教程之标签(3)

HTML5 <center> 标签 (已废弃) 定义和用法 <center> 标签对其包围的文本进行水平居中处理。HTML5不支持使用<center>标签&#xff0c;因此有关该标签的更多信息&#xff0c;请参考“HTML <center>标签”部分&#xff01; 示例: <center>这个…

SQL 秒变 ER 图 sql转er图

&#x1f680;SQL 秒变 ER 图&#xff0c;校园小助手神了&#xff01; 学数据库的宝子们集合&#x1f64b;‍♀️ 是不是每次碰到 SQL 转 ER 图就头皮发麻&#xff1f;看着密密麻麻的代码&#xff0c;脑子直接死机&#xff0c;好不容易理清一点头绪&#xff0c;又被复杂的表关…