数据不平衡问题的处理

引言


在分类问题中正负样本比例不平衡是很常见的问题,例如在预测CVR的时候,会有大量的负例,但是正例的数目缺不多,正负样本比例严重失衡。这是一个值得思考的问题。

解决思路


首先我们需要思考的是我们可否通过扩大数据集,得到更多的比例较小的样本,使新的训练集样本分布较为均衡,如果可行的话,那么这种方法值得我们考虑。
若不可行的话,可以试着从如下两个角度出发考虑:

  • 数据的角度
  • 算法/模型的角度

数据的角度


故名思议,从数据的角度出发就是,想办法使得数据的比例较为均衡,可以做的是对数据进行采样。

  • 欠采样
  • 过采样

欠采样和过采样都是随机采样,欠采样选择少量的多数类样本与少数类样本构成新的训练样本,但是若少数类样本确实太少的话,不建议使用这种方法,虽然使得样本整体的比较均衡,但是会由于样本数太少会导数信息缺失,让某些特征的不能很好的表现出来,使得欠拟合。过采样相反,是在少数类样本中做随机采样,扩大少类样本的数量,但是由于数据量的提升使得训练过程的计算量增加,也可能导致过拟合问题。


EasyEnsemble算法

考虑到欠采样可能导致信息缺失的缺点,我们提出了一种集成学习的方法–EasyEnsemble算法
算法原理:
从多数类中有放回的随机采样 n n n次,每次选取与少数类数目近似的样本,那么可以得到 n n n个样本集合记作 { S 1 , S 2 , . . . , S n } \{S_1,S_2,...,S_n\} {S1,S2,...,Sn},然后其中的每一份与少数类样本结合组成 n n n训练样本 { D 1 , D 2 , . . . , D n } \{D_1,D_2,...,D_n\} {D1,D2,...,Dn},然后再每一个训练集上得到一个模型,最后取这 n n n个模型的均值


SMOTE算法

考虑到过采样可能导致过拟合的缺点,提出了一种合成少数类过采样技术—SMOTE算法
算法的原理:
对少数类的样本做KNN算法,求出他的K近邻为 S k n n S_{knn} Sknn,然后从这K个邻居中选择若干样本,若少数类的样本为 x x x,从K近邻中选择的样本为, x ′ x^{'} x
x n e w = x + r a n d ( 0 , 1 ) ∗ ( x ′ − x ) x_{new}=x + rand(0,1)*(x^{'}-x) xnew=x+rand(0,1)(xx)
注意点:

  1. 求KNN的时候是对全集 S S S上求而并不是仅选出 x x x 在少数类集的K近邻。
  2. x x x应该选少数类边界上的一些数据,即 K 2 < S ∩ S k n n < K \frac{K}{2}\lt S \cap S_{knn} \lt K 2K<SSknn<K

其他的一些方法
  • 换一种思路,将少数类样本看成异常,将其转换成一个异常检测的问题,异常检测

算法的角度

  1. 重构训练集的方法。不改变已有算法,而是根据样本的不同错分代价给训练集中的每一个样本赋一个权值,接着按权重对原始样本集进行重构。
  2. 引入代价敏感因子,设计出代价敏感的分类算法。通常对小样本赋予较高的代价,大样本赋予较小的代价,期望以此来平衡样本之间的数目差异。

代价敏感学习方法


数据不平衡情况下的评估指标

在数据不均衡情况下我们如果参考准确率,和召回率的话不能很好的衡量模型的性能。
我们可以参考一下几个指标:


总结

这其实都是一些方法论的东西,具体的选择哪一种方法,还要依据实际的情况来定,希望能够活学活用。


参考资料

SMOTE算法
EasyEnsemble算法
大牛的分析1
大牛的分析2
专业的数术语


更多信息/快速联系博主

快速联系博主

数据平衡问题是指在样本数据中,不同类别的样本数量差异很大,导致模型在训练和预测过程中对于少数类别的样本没有充分的学习和辨别能力。解决数据平衡问题的方法有以下几种: 1. 采样方法:通过对数据集进行采样,使得不同类别的样本数量相对均衡。常见的采样方法包括欠采样和过采样。 - 欠采样:随机删除多数类别样本,使得多数类别与少数类别的样本数量接近。但欠采样可能会丢失部分重要信息。 - 过采样:通过复制少数类别的样本或生成新的合成样本来增加少数类别的样本数量。常用的过采样方法有SMOTE和ADASYN等。但过采样可能会导致模型对于少数类别样本过于敏感。 2. 加权方法:通过调整样本的权重来平衡不同类别的样本。常见的加权方法有样本权重调整和算法权重调整。样本权重调整是给每个样本设置不同的权重,使得少数类别的样本在模型训练中更加重要。算法权重调整是在模型中使用特定的算法来调整不同类别的样本权重。 3. 数据合成方法:通过生成合成的样本来增加少数类别的样本数量。常见的数据合成方法有SMOTE和GAN等。这些方法可以根据已有的样本生成新的样本,使得少数类别的样本更加丰富。 需要根据具体情况选择合适的方法来处理数据平衡问题。在样本数据量较大,且正负样本比例相差不大的情况下,可以考虑采样或加权的方法解决;在正负样本数据比例相差悬殊的情况下,可以考虑用一分类的方法解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值