返回
Featured image of post 数据不平衡的解决方法

数据不平衡的解决方法

核心观点

  • 大数据+轻微的数据不平衡可以不做处理
  • 小数据+轻微数据不平衡,上采样处理
  • 大数据+中度数据不平衡,下采样处理,训练多个模型去做集成
  • 小数据+中度数据不平衡,smote算法等来生成样本
  • 大数据+重度不平衡,孤立森林,离群点异常检测
  • 小数据+重度不平衡,一分类算法,无监督算法

概念定义

  • 轻度:1:5 以上
  • 中度:1:20以上
  • 重度:1:100以上
  • 大数据:至少是百万级别,千万级别

实战经验

  • 如果用树模型等集成模型,正负样本比在1:100以内可以不进行处理,超过1:100下采样处理。
    • 树模型是集成模型,可以从多角度捕捉少数类的特征
    • 递归分割数据,最后哪怕是少数类也会被一起分到叶子结点
    • 输出不用手动设置阈值
    • 可以通过调参缓解不平衡问题,比如is_unbalance
  • 如果用神经网络,正负样本比在1:20以内可以不进行处理,超过1:20可以下采样
  • 只有正样本没有负样本,用pu_learning
  • 数据量少的情况
    • 用树模型
    • 排查下特征归一化是否有异常值,激活函数relu改成prelu
    • 负样本重采样,或者用算法构造一些负样本,让正负样本比降到1:5左右
  • 如果是已经有成熟模型了,想额外关注不平衡的样本,用多任务学习吧,比如mmoe,ple,额外新增一个任务针对正样本进行优化
© 2023 - 2025 壹壹贰捌· 0Days
共书写了265.7k字·共 93篇文章 京ICP备2023035941号-1