当前位置: 首页 > news >正文

【机器学习】数据均衡学习笔记

文章目录

      • 序言
      • 1. 样本不均衡
      • 2. 样本不均衡的影响以及样本均衡的意义
      • 3. 什么时候需要进行样本均衡/数据均衡
      • 4. 数据不均衡的解决办法

序言

  • 数据集制作过程中需要关注样本均衡问题,学习笔记,简单记录

1. 样本不均衡

  • 分类任务中不同类别样本数差别很大的情况,样本比例大于比如4:1可以认为样本不均衡,样本不均衡现象比较常见
  • 那么到底差异多少才算失衡呢,按照google developer的说法,我们一般可以把失衡分为三个程度:
    • 少数类 : 多数类 = 20%~40%, 轻度不均衡
    • 少数类 : 多数类 = 1%~20%, 中度不均衡
    • 少数类 : 多数类 < 1%, 极度不均衡

2. 样本不均衡的影响以及样本均衡的意义

  • 样本不均衡的影响

    • 假如”好、坏”两类样本占比是1000:1,只要预测为”好”,就能得到很高的准确率,那么模型学到的不是如何分别好坏,而是”好远比坏多”这样的先验信息,这样就背离了用模型去分别好坏的初衷;
    • 导致模型不能学习更本质的特征,影响模型的鲁棒性;
  • 样本均衡的意义

    • 通过解决样本不均衡,可以减少模型学习样本比例的先验信息,以获得能学习到辨别好坏这种本质特征的模型

3. 什么时候需要进行样本均衡/数据均衡

  • (1) 简单的线性可分任务,样本是否均衡可能影响不大
  • (2) 判断样本与真实样本分布是否一致且稳定,如果不是,数据如果带有先验信息可能就有副作用
  • (3) 某一类样本非常稀少的情况,模型很可能学习不好

4. 数据不均衡的解决办法

  • 数据均衡本质上是:通过某种方法使得不同类别的样本对于模型学习中的loss(或梯度)贡献是比较均衡的。以消除模型对不同类别的偏向性,学习到更本质的特征

  • 数据均衡的方法简单记录:

  • (1) 样本层面

    • 过采样和欠采样
      • 过采样会导致样本重复,可能导致过拟合:最直接的方法是简单的复制少数类样本形成多条记录,这种方式可能导致样本特征少而可能出现过拟合的问题;经过改进的过抽样方法通过在少数类中加入随机噪声、干扰数据或者通过一定规则产生新的合成样本
      • 欠采样可能导致类别间有重要差别的重要实例丢失,在过滤少量样本不影响模型训练的情况下,随机的删除一些多数类样本
    • 数据增强:
      • 使用常见的数据增强方法增加样本数据,如翻转、旋转、改变对比度、随机裁剪等
  • (2) loss层面: 主流的是代价敏感学习法cost sensitive,为不同的分类错误给与不同惩罚力度/权重

    • scikit的’class weight’方法
      • 为不同样本提供不同权重,少数类有更高权重,从而平衡各类别的学习,避免决策边界偏重多数类的现象
    • OHEM和focal loss
      • OHEM: Online Hard Example Mining, 算法的核心是选择一些困难样本(多样性和高损失的样本)作为训练的样本,针对性地改善模型学习效果;对于数据的类别不平衡问题,OHEM的针对性更强
      • Focal Loss: 在交叉熵损失函数CE的基础上增加了类别的不同权重以及困难样本的权重,使训练时更专注于难分类的样本,以改善模型的学习效果
  • (3) 模型层面:模型层面主要是选择一些对样本不均衡比较不敏感的模型,比如 逻辑回归在利用反向传播来优化参数时,数量少的那一类在反向传播求梯度时影响比较小,梯度容易向数量多的样本方向下降,所以对样本分布不均衡比较敏感。决策树基于特征的划分去创建分类树,可以强制的将不同类别样本分开,在样本不均衡上比较不敏感一些

    • 采样 + 集成学习的方法,训练若干分类器进行集成学习;采样过程是必须的,否则同样会有利于多数类
    • 异常检测:在样本类别极端不均衡的情况下,比如少数类只有几十个样本,分类问题考虑成异常检测问题可能会更好
  • (4) 决策及评估指标层面:采用不均衡的数据训练模型时,采用更好的决策和客观的评估,比如对比分类问题采用recall precision F1分数 混淆矩阵,样本不均衡时会明显改变这些指标的表现

    • 分类阈值移动:对于不均衡下模型的预测,调整模型对于不同类别偏好的的情况,如模型偏好预测负样本,偏向0,则我们分类阈值也往下调整,达到决策时类别平衡的目的
    • 低于类别不均衡的模型评估,可以采用AUC、AUPRC评估模型表现,对正负样本的比例情况不敏感

 


【参考文章】
样本不均衡的解决办法
样本不均衡介绍及解决办法

created by shuaixio, 2023.10.24

相关文章:

【机器学习】数据均衡学习笔记

文章目录 序言1. 样本不均衡2. 样本不均衡的影响以及样本均衡的意义3. 什么时候需要进行样本均衡/数据均衡4. 数据不均衡的解决办法 序言 数据集制作过程中需要关注样本均衡问题&#xff0c;学习笔记&#xff0c;简单记录 1. 样本不均衡 分类任务中不同类别样本数差别很大的…...

【软件教程】如何用C++交叉编译出能在Android运行的ELF程序或so动态库

一、配置NDK交叉编译平台 1. 打开Android的官方ndk下载链接https://developer.android.com/ndk/downloads?hlzh-cn&#xff0c;下载windows 64位ndk环境包。 2. 解压后将具有以下文件的路径加入到系统环境变量。 3. 配置好环境变量&#xff0c;如下图所示&#xff0c;Path中存…...

进阶JAVA篇- Map 系列集合的遍历方法与常用API

目录 1.0 Map 集合的说明 1.1 Map 集合的常用方法 1.2 Map 系列集合的特点 2.0 Map 系列集合的遍历方法&#xff08;三种方法&#xff09; 2.1 使用 keySet() 方法遍历 2.2 使用 entrySet() 方法遍历 2.3 使用 forEach() 方法遍历&#xff08;Java 8&#xff09; 1.0 Map 集合的…...

Auth.js:多合一身份验证解决方案 | 开源日报 No.60

nodejs/node Stars: 96.2k License: NOASSERTION Node.js 是一个开源的、跨平台的 JavaScript 运行时环境。它具有以下关键特性和核心优势&#xff1a; 强大&#xff1a;Node.js 提供了强大且高效的服务器端运行能力&#xff0c;可以处理并发请求&#xff0c;并支持异步编程…...

SpringBoot整合Activiti7——任务监听器(七)

文章目录 一、任务监听器事件类型配置方式(选)代码实现xml文件创建监听器class方式expression方式delegateExpression 测试流程部署流程启动流程完成任务 一、任务监听器 任务监听器可以在任务创建、任务分配、任务完成、任务删除发生时触发&#xff0c;从而执行相应的逻辑。 事…...

电解电容寿命与哪些因素有关?

电解电容在各类电源及电子产品中是不可替代的元器件&#xff0c;这些电子产品中由于应用环境的原因&#xff0c;使它成为最脆弱的一环&#xff0c;所以&#xff0c;电解电容的寿命也直接影响了电子产品的使用寿命。 一、电解电容失效模式与因素概述 铝电解电容器正极、负极引出…...

Opencv-图像插值与LUT查找表

图像像素的比较 白色是255&#xff0c;黑色是0 min(InputArray src1,InputArray src2,OutputArray dst) max(InputArray src1,InputArray src2,OutpurArray dstsrc1:第一个图像矩阵&#xff0c;通道数任意src2&#xff1a;第二个图像矩阵&#xff0c;尺寸和通道数以及数据类型…...

我为什么写博客?写博客给我带来了什么?

1、写博客的契机 &#xff08;1&#xff09;刚开始接触CSDN&#xff0c;是大三的时候开始学习嵌入式开发&#xff0c;经常需要到网上百度查资料&#xff0c;由此经常游览CSDN上的博客&#xff1b; &#xff08;2&#xff09;在嵌入式的过程中&#xff0c;需要总结学习过的知识。…...

jdk11的HttpClient

我们都知道在jdk11之前都在用okhttp或者org.apache.httpcomponents 其实早在jdk9的时候这个方案就在孵化中 上面的截图来自openjdk的官网&#xff0c;注&#xff1a;openjdk是个开源项目&#xff0c;不存在侵权现象 这是openjdk的官网&#xff1a;JEP 110: HTTP/2 Client (In…...

Redis的优势

高性能 Redis是一种基于内存的数据存储系统&#xff0c;读写性能非常高&#xff0c;因此适用于对性能要求较高的应用场景。 数据结构丰富 Redis支持多种数据结构&#xff0c;如字符串、列表、集合、散列、有序集合等&#xff0c;可以满足不同的业务需求。还有一些特殊数据结…...

C++ string 类的其他操作

4.3.2 string 类的其他操作 在C新增string类之前,程序员也需要完成诸如给字符串赋值等工作。对于C语言式的字符串,程 序员使用C语言库中的函数来完成这些任务。头文件cstring(以前为string.h)提供了这些函数。例如,可 以使用函数 strcpy()将字符串复制到字符数组中,使用函数…...

structs2 重构成SpringBoot架构

# 目录 structs2 重构成SpringBoot架构 1.1 structs2架构&#xff1a; 1.2 springboot 架构 1.3 演化要点&#xff1a; 1.基于前端的展示层不需要修改 2.HttpServlet 将会有SpringBoot annotation 来处理 3.构建前置的Structs url 转发器&#xff0c;适配 4.ActionSupport将由…...

【MATLAB源码-第56期】基于WOA白鲸优化算法和PSO粒子群优化算法的三维路径规划对比。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 1.粒子群算法&#xff08;Particle Swarm Optimization&#xff0c;简称PSO&#xff09;是一种模拟鸟群觅食行为的启发式优化方法。以下是其详细描述&#xff1a; 基本思想&#xff1a; 鸟群在寻找食物时&#xff0c;每只鸟都…...

【WinForm详细教程一】WinForm中的窗体、Label、TextBox及Button控件、RadioButton和CheckBox、ListBox

文章目录 1.WinForm文件结构2. 窗体的常用属性、方法与事件2.1 常用属性&#xff08;可直接在属性中设置&#xff09;2.2 常用方法2.3 常用事件 3.Label、TextBox及Button控件4.RadioButton和CheckBox5.ListBox&#xff08;列表框&#xff09; 1.WinForm文件结构 .sln文件 &am…...

【SwiftUI模块】0060、SwiftUI基于Firebase搭建一个类似InstagramApp 3/7部分-搭建TabBar

SwiftUI模块系列 - 已更新60篇 SwiftUI项目 - 已更新5个项目 往期Demo源码下载 技术:SwiftUI、SwiftUI4.0、Instagram、Firebase 运行环境: SwiftUI4.0 Xcode14 MacOS12.6 iPhone Simulator iPhone 14 Pro Max SwiftUI基于Firebase搭建一个类似InstagramApp 3/7部分-搭建Tab…...

PureFlash云原生存储部署方法

PureFlash云原生存储 PureFlash是一个开源存储系统&#xff0c;它能为云计算和传统应用提供块存储服务。PureFlash最显著的优势是其高性能&#xff0c;每节点能提供超过100万IOPS随机写IO。 PureFlash可以以云原生的方式部署&#xff0c;并为云原生应用提供持久存储。 PureFl…...

SqueezeNet 一维,二维网络复现 pytorch 小白易懂版

SqueezeNet 时隔一年我又开始复现神经网络的经典模型&#xff0c;这次主要复的是轻量级网络全家桶&#xff0c;轻量级神经网络旨在使用更小的参数量&#xff0c;无限的接近大模型的准确率&#xff0c;降低处理时间和运算量&#xff0c;这次要复现的是轻量级网络的非常经典的一…...

Java 数据结构

枚举 Java枚举是一种特殊的类&#xff0c;它用于定义有限个特定的值&#xff0c;例如一周的星期或者性别。枚举在Java中被视为数据类型&#xff0c;你可以使用它们来创建枚举类型的变量&#xff0c;然后使用那些枚举值等。 在Java中&#xff0c;声明枚举类型需要使用enum关键字…...

python sqlalchemy(ORM)- 02 表关系

文章目录 表关系ORM表示 1v1ORM表示 1vm 表关系 1:1&#xff0c;表A 中的一条记录&#xff0c;仅对应表B中的一条记录&#xff1b;表B的一条记录&#xff0c;仅对应表A的一条记录。1:m&#xff0c;表A中的一条记录&#xff0c;对应表B中的多条记录&#xff0c;表B中的一条记录…...

Http长连接同一个socket多个请求和响应如何保证一一对应?

HTTP/2引入二进制数据帧和流的概念&#xff0c;其中帧对数据进行顺序标识&#xff0c;如下图所示&#xff0c;这样浏览器收到数据之后&#xff0c;就可以按照序列对数据进行合并&#xff0c;而不会出现合并后数据错乱的情况。同样是因为有了序列&#xff0c;服务器就可以并行的…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...