【机器学习基础】样本类别不平衡的解决办法

目录

一 数据不平衡现象以及分析

二 解决措施

1.采样

(1)随机下采样(Random undersampling of majority class)

(2)随机过采样

(3)Edited Nearest Neighbor算法

(4)Repeated Edited Nearest Neighbor算法

(5)EasyEnsemble算法

         (6)BalanceCascade算法

(7)NearMiss算法

(8)Tomek Link算法

2.数据合成

(1)SMOTE算法

(2)Borderline-SMOTE算法

(3)ADASYN算法

三 参考资料


一 数据不平衡现象以及分析

    在进行一些分类的任务时,很多算法模型都有一个假设是数据的分布是均匀的,在数据分布均匀的前提下,模型才能发挥出更好的效果,但是在我们实际的应用场景中,我们的数据往往达不到这样理想的情况,特别是在多分类任务中,不同类别之间的差距很有可能就比较大,而且很多情况下都会存在“长尾现象”,比如下图给的一个例子:

    可以看到对于上述例子,有的类别样本量达到了4K,有的却是个位数,当然这个取决于问题本身,其实对于大部分的数据集来说,都会存在样本不平衡的问题,但是就看这个不平衡的影响程度,也有可能相同的不平衡比例下,不同数据集大小的影响程度也不同。很简单的举个例子,有A,B两个类别,一个数据集A和B分别有1000万和50万条数据,另一个数据集A和B只有1万和500条数据,很明显后者是很难训练出好的模型。由于针对不同的实际问题具体的数据处理方式都会有所不同,本文只讨论一些公共的针对数据不平衡问题的解决办法。

二 解决措施

1.采样

    采样是使得数据集趋向平衡的最简单直接的方式,采样从思想上分成过采样和欠采样,过采样是使得小类别的样本数据量增加,欠采样是减少大类别样本数据量。

 (1)随机下采样(Random undersampling of majority class)

    随机下采样的思想非常简单,就是从数量多的类别中,随机选取一些样本剔除掉,这种方法的弊端也很明显,被剔除的样本可能包含着一些重要信息,致使学习出来的模型效果不好。这个方法在Python的库imblearn.under_sampling-RandomUnderSampler可以直接调用。

(2)随机过采样

    随机过采样就是通过有放回的抽样,不断的从少数类的抽取样本,不过要注意的是这个方法很容易会导致过拟合。、

(3)Edited Nearest Neighbor算法

    对于大类别的样本,如果他的大部分k近邻样本都跟他自己本身的类别不一样,我们就将他删除。

(4)Repeated Edited Nearest Neighbor算法

    一直重复Edited Nearest Neighbor算法直到没有样本需要被删除为止

(5)EasyEnsemble算法

    EasyEnsemble算法是一种有效的不均衡数据分类方法。它将多数类样本随机分成多个子集,每个子集分别与少数类合并,得到多个新的训练子集,并利用每个训练子集训练一个AdaBoost基分类器,最后集成所有基分类器,得到最终的分类器。       

    EasyEnsemble算法有效解决了数据不均衡问题,且减少欠采样造成的多数类样本信息损失。但是,EasyEnsemble算法未考虑少数类样本极度欠缺的情况,由于少数类样本数远小于正确训练分类器所需的样本数,导致基学习器的分类性能差,进而最终的分类器性能也很差。另外,噪声是另一个影响分类器性能的关键因素,在EasyEnsemble算法中并未考虑。

(6)BalanceCascade算法

    BalanceCascade和EasyEnsemble其实大致上是类似的,如果说EasyEnsemble是基于无监督的方式从多数类样本中生成子集进行欠采样,那么BalanceCascade则是采用了有监督结合Boosting的方式。在第n轮训练中,将从多数类样本中抽样得来的子集与少数类样本结合起来训练一个基学习器H,训练完后多数类中能被H正确分类的样本会被剔除。在接下来的第n+1轮中,从被剔除后的多数类样本中产生子集用于与少数类样本结合起来训练,最后将不同的基学习器集成起来。BalanceCascade的有监督表现在每一轮的基学习器起到了在多数类中选择样本的作用,而其Boosting特点则体现在每一轮丢弃被正确分类的样本,进而后续基学习器会更注重那些之前分类错误的样本。

 

(7)NearMiss算法

    NearMiss的思想也是从大类别的样本中抽取一定数量的样本跟小类别样本放到一起进行训练,只不过与随机欠采样不同的就是选择样本的时候有一定的规则性,也是为了缓解一定程度上的信息丢失问题,NearMiss分成以下三类:
    NearMiss-1:采样的规则为选择到最近的K个少数类样本平均距离最近的多数类样本。

    NearMiss-2:采样的规则为选择到最远的K个少数类样本平均距离最近的多数类样本。

    NearMiss-3:对于每个小众样本,选择离它最近的K个大众样本,目的是保证每个小众样本都被大众样本包围。

 

优缺点:
NearMiss-1考虑的是与最近的K个小众样本的平均距离,是局部的,易受离群点的影响;NearMiss-2考虑的是与最远的K个小众样本的平均距离,是全局的。而NearMiss-3方法

  • 9
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值