• 不均衡样本集的重采样


    样本不均衡时出现问题的原因

    • 本质原因:模型在训练时优化的目标函数和测试时使用的评价标准不一致
    • 这种不一致:
      • 训练数据的样本分布与测试时期望的样本分布不一致
      • 训练阶段不同类别的权重(重要性)与测试阶段不一致

    解决方法

    基于数据的方法

    对数据进行重采样,使样本变得均衡

    • 随机采样:
      • 过采样:从(S_{min})中有放回采样,可能造成过拟合
      • 欠采样:从(S_{maj})随机舍弃,可能损失有用信息
    • SMOTE算法
      • 对少数类样本集(S_{min})中的每个样本(x),从它在(S_{min})中的K近邻中随机选取一个样本(y),然后在(x,y)连线上随机选取一点作为新样本
      • 根据需要的过采样倍率重复上述过程若干次
      • 缺点:
        • 为每个少数类样本合成相同数量的新样本,增大类间重叠度
        • 生成一些不能提供有用信息的样本
      • 改进:
        • Borderline-SMOTE:只给处于分类边界上的少数类样本合成新样本
        • ADASYN算法:不同的少数类样本合成不同个数的新样本
        • 数据清理方法(如Tomek Links),降低合成样本的类间重叠
    • Informed Undersampling
      • Easy Ensemble算法
        • 从多数类(S_{maj})中随机抽取一个子集(E(|E|approx |S_{min}|))
        • 使用(E + E_{min})训练分类器;重复上述过程若干次,得到多个分类器
        • 最终结果由多个分类器结果融合
      • Balance Cascade算法:级联结构
        • 在每一级中从多数类(S_{maj})中随机抽取子集(E)
        • (E+S_{min})训练该级的分类器
        • (S_{maj})中能够被当前分类器正确判别的样本剔除掉
        • 继续下一级操作,重复若干次得到级联结构
        • 最终结果也是各级分类器结果的融合
      • NearMiss
        • 利用K近邻信息挑选具有代表性的样本
      • One-sided Selection
        • 采用数据清理技术
    • 其它采样技术
      • 基于聚类的采样方法
      • 数据扩充方法
      • Hard Negative Mining
  • 相关阅读:
    base64解码
    字典排序之后md5
    python 如何将列表多个字符串拼接成一个字符串
    Mongodb $setOnInsert操作符 和upsert:true
    为了不复制粘贴,我被逼着学会了JAVA爬虫
    10-序列化
    【开发笔记】- 停止MySQL正在执行的SQL语句
    【算法练习】- 百钱百鸡
    volatile与synchronized的区别与作用
    记录一次使用OSS而引发的关于maven的问题
  • 原文地址:https://www.cnblogs.com/weilonghu/p/11922699.html
Copyright © 2020-2023  润新知