• 机器学习算法——分类问题1(类别不平衡问题--欠采样方法)


     类别不平衡(class-imbalance)就是指分类任务中不同类别的训练样例数目差别很大的情况。

    欠采样法是解决类别不平衡问题之一。

    欠采样法是直接对训练集中多数样本进行“欠采样”,即去除一些多数类中的样本使得正例、反例数目接近,然后再进行学习。

    随机欠采样顾名思义即从多数类S中随机选择一些样本组成样本集E,然后将样本集E从S中移除。新的数据集S_{new}=S-E

    缺点:

    随机欠采样方法通过改变多数类样本比例以达到修改样本分布的目的,从而使样本分布较为均匀,但也存在一些问题,对于随机采样,由于采样的样本集合少于原来的样本集合,会造成数据缺失。

    目前代表性的算法是EasyEnsemble和BalanceCascade。

    一、EasyEnsemble算法

    EasyEnsemeble的原理是通过重复组合正样本与随机抽样的同样数量的负样本,训练若干数量分类器进行集成学习。

    这个算法的流程如下:

    解释一下,数据中,少数类别为P;多数类别为N;从N中分出多个子集,数量为T;s_i代表基分类器,H_i为训练基分类器s_i的训练迭代次数。然后根据少数类别P的数量对多数类别N进行随机采样产生N_i,使得|N_i|=|P|。然后把N_i和P结合起来,给基分类器进行学习。这里引入了下标j,是由于默认的基分类器是AdaBoost,而AdaBoost是由N个弱基分类器组成的,j表示AdaBoost基分类器里的第j个弱分类器。

    二、BalanceCascade算法

    基本架构与EasyEnsemble相同,不同的地方在于每训练一个(AdaBoost)分类器后就将正确分类的样本去掉,错误分类的样本放回到原样本空间中,通过调整阈值来筛选出分类错误的样本将其保留,阈值调整为:

    \sqrt[T-1]{|P|/|N|}

    这个算法的流程如下:

     

    这两种算法实现在imblearn包中,具体调用如下:

    from imblearn.ensemble import EasyEnsembleClassifier
    
  • 相关阅读:
    赛特转债,华懋转债上市价格预测
    6 个最佳免费 Android 数据恢复软件
    十七、完整神经网络模型训练步骤
    Linux环境下安装Nodejs
    主流接口测试框架对比,究竟哪个更好用
    微电影的特征有哪些?
    JAVA计算机毕业设计衣依服装销售平台Mybatis+系统+数据库+调试部署
    android自定义View: 绘制图表(一)
    sentinel
    vue2实现自定义主题webpack-theme-color-replacer
  • 原文地址:https://blog.csdn.net/Vicky_xiduoduo/article/details/126380152