深度学习入门教学——代价敏感学习

news2024/10/5 14:20:39

1、背景

  • 常用于分类器性能评估的指标为:准确率或错误率,也就是代价不敏感学习。
  • 【注】代价:一个类别被错误分类到其他类别的惩罚(也称为权重)。
  • 代价不敏感学习的前提是:
    • 不同类的误分类代价相同。
    • 用于学习的训练数据足够完备。
  • 但上述的条件在现实中很难被满足,原因是:
    • 不同类的误分类代价经常不同。
    • 有些训练数据获取困难。
  • 所以,提出了新的分类学习方法,即代价敏感学习。
  • 代价敏感学习是解决类别不平衡问题的重要方法之一,可以提高小样本分类的准确性。

2、定义

  • 代价不敏感学习的目标是最小化分类器的错误率,而代价敏感学习的目标是最小化分类器的总代价
  • 代价使用代价敏感矩阵存储:
    • ,其中表示类别错分为类别的“惩罚”或“代价”,其值不小于0。当时,对应分类 正确的情况。
  • 误分类代价敏感的分类器采用最小化代价期望之和的原则来进行分类。
  • 分类器将一个待测样本 x 分类为第 i 类的代价期望为:
    • :x 被分类为第 j 类的概率。
    • :第 i 类被分类到第 j 类的惩罚。
    • :最终目标是选择一个 i,使R最小。
    • 如果 x 能被准确分类到类别 i 的话,那么分类到其他类别的概率就越小,(代价*概率)也就越小,代价期望之和R也就越小。
    • 也就是说,被错误分类到某类别的惩罚越大,就越不会被分类到这个类别。

3、权重指定方法

  • 通过以上描述可发现,代价敏感方法处理不平衡样本问题的前提是需事先指定代价敏感矩阵,其中关键是错分惩罚或错分权重的设定。
  • 实际使用中可根据样本比例、分类结果的混淆矩阵等信息指定代价敏感矩阵中错分权重的具体取值。

3.1、按样本比例指定

  • 假设训练样本标记共3类:a类、b类和c类,它们的样本数目比例为3 : 2 : 1。
  • 则代价敏感矩阵可指定为:
  • 简单来说,当 a 类样本被错分为 b 类或 c 类时,由于其样本数较多,对应惩罚权重可设置的小一些,即 b 类或 c 类样本数与 a 类样本数的比值。
  • 当 b 类样本被错分为 a 类或 c 类时,对应惩罚权重同样为 a 类或 c 类样本数与 b 类样本数的比值。
  • 当样本数最少的 c 类被错分为 a 类或 b 类时,对应惩罚权重应设置大一些,以增加小样本错分代价从而体现小样本数据的重要程度。
  • 当然,也可以在上述矩阵的基础上,对矩阵元素都乘上类别数的最小公倍数6,确保有效惩罚权重不小于1,即:

3.2、根据混淆矩阵指定

3.2.1、混淆矩阵
  • 用二分分类举例,以下判断食物是不是汉堡。
  • ,得到
  • 其中,本身是汉堡,又被正确识别为汉堡的有1个;本身是汉堡,却被错误识别为不是汉堡的有1个;本身不是汉堡,却被错误识别为汉堡的有2个;本身不是汉堡,又被正确识别为不是汉堡的有5个。上述得到的矩阵,即为混淆矩阵。
  • 混淆矩阵是总结分类模型预测结果的分析表。
3.2.2、指定方法
  • 仍以a、b、c三类分类为例,有如下混淆矩阵:
  • 在上述混淆矩阵中,虽然各类错分的样本数的绝对数值接近(均错分了3个左右的样本)。但相对而言,样本数较少的 a 和 b 类分别有(1+3)/(4+1+3)=50%(2+4)/(2+3+4)=66.67%样本被分错,比例相当高。而对于样本数较多的 c 类,其错分概率就相对较低,为(3+2)/(3+2+21)=19.23%
  • 该情况下利用代价敏感法处理时,可根据各类错分样本数设置代价敏感矩阵的取值。
  • 一种方式可直接以错分样本数为矩阵取值:
  • 另一种更优方案则还需考虑各类的错分比例,并以此比例调整各类错分权重。
    • 对 a 类而言,a 类错分比例为50%,占所有错分比例50% / (50%+67%+19%)=36.76%。
    • 同理,b类占49.26%,c类最少,占13.97%。
    • 以此为权重乘上原代价矩阵可得新的代价矩阵(已取整):

4、分类器评估

  • 混淆矩阵:
  • 性能评估指标:
    • 误分类代价=,其中 表示第 i 类被分类到第 j 类的惩罚。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【力扣周赛】第 112 场双周赛

文章目录 竞赛链接Q1:7021. 判断通过操作能否让字符串相等 IQ2:7005. 判断通过操作能否让字符串相等 II(贪心)Q3:2841. 几乎唯一子数组的最大和竞赛时代码——滑动窗口 Q4:8050. 统计一个字符串的 k 子序列…

小白学go基础05-变量声明形式

和Python、Ruby等动态脚本语言不同,Go语言沿袭了静态编译型语言的传统:使用变量之前需要先进行变量的声明。 变量声明形式使用决策流程图 这里大致列一下Go语言常见的变量声明形式: var a int32 var s string "hello" var i 13 …

C# void 关键字学习

C#中void关键字是System.Void的别名; 可以将 void 用作方法(或本地函数)的返回类型来指定该方法不返回值; 如果C#方法中没有参数,则不能将void用作参数;这是与C语言不同的,C语言有…

附录2-将三国演义按章节存储为不同的txt(bs4)

地址 《三国演义》全集在线阅读_史书典籍_诗词名句网 目录 1 项目分析 2 代码 1 项目分析 我们可以在首页中找到所有的章节 每一个章节是一个a标签,a标签连接到该章节的内容 但这个网站他有bug,章节都是乱套的,我们无视这种错误&#…

Python通过Socket操作RFID设备-盘点功能

项目介绍:根据这么多年的IT经验,需求通过与用户沟通发现的,机会也是这样出来的。仓库的小伙子跟我倒苦水,动不动实物盘点,几千颗物料,都忙疯了,而且,新的物料一入库,作为…

基于Matlab分析的电力系统可视化研究

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

什么是专线网络?互联网专线为什么贵

宽带主要分为专线和家庭宽带。一般来说,企业服务器和云服务提供商通常使用专线宽带,普通家庭接入家庭宽带。 什么是专线网络? 专线是指依托国内骨干网络和宽带城市网络资源,为企业集团客户提供专线接入方式互联网城市互联网&…

WebDAV之π-Disk派盘 + 无忧日记

无忧日记,生活无忧无虑。 给用户专业的手机记录工具,用户可以很轻松地通过软件进行每天发生事情的记录,可以为用户提供优质的工具与帮助,用户还可以通过软件来将地理位置,天气都记录在日记上,用户也可以通过软件来进行图片的导入,创建长图日记, 心情报表:用户写日记…

企业架构LNMP学习笔记14

默认官方模块: Gzip压缩: 压缩文件,使文件变小了,传输更快了,目前大部分市场浏览器都支持Gzip。 传输的时候省流量。 目的是为了提高用户的加载速度。 #开启gzip压缩 gzip on; #http协议版本 gzip_http_version 1.0…

css之层叠上下文

之前调元素的显示优先级时,只会默默的调z-index以达到效果,但有时不生效,又不知道根因。刚好详细了解到层叠上下文,可以解释此类问题。 什么是层叠上下文? 在CSS2.1规范中,每个盒模型的位置是三维的&…

智能电网时代:数字孪生的崭露头角

随着科技的不断进步,数字孪生已经开始在电力行业崭露头角,为这个关键的行业带来了前所未有的机遇和潜力。本文就带大家了解一下数字孪生在哪些方面为电力行业做出改变,以及未来的创新应用。 首先,数字孪生可以提高电力系统运营效率…

Mysql事务及锁

一、MVCC原理 1.1 版本链 trx_id :每次一个事务对某条聚簇索引记录进行改动时,都会把该事务的 事务id 赋值给 trx_id 隐藏列。 roll_pointer :每次对某条聚簇索引记录进行改动时,都会把旧的版本写入到 undo日志 中&#xff0…

木棒切割问题

题目很简单&#xff0c;就是我们在写二分的时候&#xff0c;会遇到这样的情况&#xff1a; mid left (right-left)/2; if (nums k)return mid;if (nums>k)left mid;if (nums<k)right mid-1; 若我们debug会发现其可能会一致卡在left mid&#xff0c;例如&#xff08…

ceph Monitor原理和代码流程介绍

Monitor介绍 Monitor在Ceph集群中扮演管理者的角色&#xff0c;维护了整个集群的状态&#xff0c;集群的状态被抽象成几个Map对象&#xff0c;包括monmap、osdmap、mdsmap、authmap、logmap等&#xff0c;保证集群的相关组件在同一时刻能够达成一致&#xff0c;相当于领导层。…

语言深入理解指针(非常详细)(三)

目录 数组名的理解使用指针访问数组 一维数组传参的本质二级指针指针数组指针数组模拟二维数组 数组名的理解 在上⼀个章节我们在使用指针访问数组的内容时&#xff0c;有这样的代码&#xff1a; int arr[10] {1,2,3,4,5,6,7,8,9,10}; int *p &arr[0];这里我们使用 &am…

医者无疆 | AI赋能大医精诚,医疗制药的进阶与突破

在历史的长河中&#xff0c;医学一直是人类文明的重要组成部分。从古希腊的希波克拉底到现代医学研究&#xff0c;医学始终与时俱进&#xff0c;为人类的健康和福祉做出了巨大的贡献。在互联网、大数据、5G等信息技术的迭代下&#xff0c;人工智能&#xff08;AI&#xff09;的…

cpp20规范 vs2019 STL库 unordered_map源码分析(整理后上传)

&#xff08;1&#xff09; unordered_map 模板有如下的模板调用和包含关系。 绿箭头1 处的模板类&#xff0c;继承了绿箭头2 &#xff0c; 绿箭头2 又继承了红框模板。但红框模板有一个泛化版本和一个特化版本&#xff0c;选择哪一个呢&#xff1f; 经过源代码查找&#xff0…

腾讯张乐:“反内卷”潮流已至,研发效能是软件企业必由之路

目录 Why&#xff5c;“狂飙”踩下刹车&#xff0c;“湖水岩石效应”加速显现 What&#xff5c;效能 ≠ 效率&#xff0c;效能 效率 有效性 How&#xff5c;研发效能“黄金三角” e.g.&#xff5c;软件研发效能实践中的“坑”与“解” 1. 忽视重视工程师的声音 2. “迷…

【Spring】SpringBoot的10个参数验证技巧

这里写目录标题 前言1.使用验证注解2 使用自定义验证注解3 在服务器端验证4 提供有意义的错误信息5 将 i18n 用于错误消息messages.properties6 使用分组验证7 对复杂逻辑使用跨域验证8 对验证错误使用异常处理9 测试你的验证逻辑10 考虑客户端验证总结 前言 参数验证很重要&am…

跨空间域数据管理分布式共识算法:现状、挑战和展望

跨空间域数据管理分布式共识算法&#xff1a;现状、挑战和展望 李伟明1&#xff0c;李彤1,2, 张大方1&#xff0c;戴隆超1,2, 柴云鹏1,2 1 中国人民大学信息学院&#xff0c;北京 100872 2 数据工程与知识工程教育部重点实验室&#xff0c;北京 100872 摘要&#xff1a;随着数字…