当前位置: 首页 > 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

http://www.lryc.cn/news/204712.html

相关文章:

  • 【软件教程】如何用C++交叉编译出能在Android运行的ELF程序或so动态库
  • 进阶JAVA篇- Map 系列集合的遍历方法与常用API
  • Auth.js:多合一身份验证解决方案 | 开源日报 No.60
  • SpringBoot整合Activiti7——任务监听器(七)
  • 电解电容寿命与哪些因素有关?
  • Opencv-图像插值与LUT查找表
  • 我为什么写博客?写博客给我带来了什么?
  • jdk11的HttpClient
  • Redis的优势
  • C++ string 类的其他操作
  • structs2 重构成SpringBoot架构
  • 【MATLAB源码-第56期】基于WOA白鲸优化算法和PSO粒子群优化算法的三维路径规划对比。
  • 【WinForm详细教程一】WinForm中的窗体、Label、TextBox及Button控件、RadioButton和CheckBox、ListBox
  • 【SwiftUI模块】0060、SwiftUI基于Firebase搭建一个类似InstagramApp 3/7部分-搭建TabBar
  • PureFlash云原生存储部署方法
  • SqueezeNet 一维,二维网络复现 pytorch 小白易懂版
  • Java 数据结构
  • python sqlalchemy(ORM)- 02 表关系
  • Http长连接同一个socket多个请求和响应如何保证一一对应?
  • Standford Compiler Course Assignment 2
  • 基于Java的校园论坛管理系统设计与实现(源码+lw+部署文档+讲解等)
  • 谈谈你对Spring的理解
  • 系统架构师考试易混淆知识点总结
  • 反射的作用( 越过泛型检查 和 可以使用反射保存所有对象的具体信息 )
  • 前端开发实践:vue中用qrcode库将超链接生成二维码图片
  • 数据库连接池有什么用?它有哪些关键参数?
  • Android Settings解析
  • Spring+spring mvc+mybatis整合的框架
  • 02-2、PyCharm中文乱码的三处解决方法
  • Axi接口的DDR3:参数,时序,握手机制