样本不平衡问题解决方法总结

样本不平衡问题:数据集中,每个类别下的样本数目相差很大。以下以二分类问题为例进行讨论:

 

  

 

 

 

 

 

 

 

    图示:坏样本占比:0.17%( 492(坏样本) : 284315(好样本))

 

理想的样本应该是50:50,但现实中某些场景就是非平衡数据,如金融领域(一般来说,好客户的样本要远远大于坏客户!)

 

解决方法总结:

一、数据上处理

二、权重设置

三、集成的思想

四、转化成异常检测问题

五、利用深度学习:自编码器.

六、确定适合样本不平衡问题的评价指标

 

一、数据上处理:

1.数据源:

  搜集更多的数据来使数据达到平衡,但是一般出现样本不平衡问题,就是不太可能以一种简单的方法获取到更多的样本

  (在金融领域,可以思考坏用户的定义是否过于严格)

2.数据增广:

  目前数据增广主要应用于图像领域,主要包括:水平/垂直翻转,旋转,缩放,裁剪,剪切,平移,对比度,色彩抖动,噪声等

3.欠采样:

  随机欠采样:随机去除多数类一些的样本

  缺点:会造成信息缺少 or 最后模型的欠拟合

4.过采样:

  4.1 随机过采样:随机增加少数类的一些样本

  缺点:因为随机过采样是简单的对初始样本进行复制采样,这就使得学习器学得的规则过于具体化,不利于学习器的泛化性能,造成过拟合

  4.2 SMOTE:在随机过采样上进行了改进,利用了K近邻的思想

 

二、权重设置:

1.设置类别权重:class_weight

2.设置样本权重:sample_weight

 

三、集成的思想:

1.采用boosting的集成算法:XGB,LGB等(对不平衡数据处理效果较好的模型)

2.模型融合:投票法

利用gbdt/lgb/xgb分别对正负样本按比例(1:2 1:5 1:10)进行训练,然后根据AUC分数的比例得到了三者的比例,最后进行投票得到最终模型

 

四、转化成异常检测问题:

在样本极度不平衡的情况下,换一个完全不同的角度来看待问题,可以把它看成异常检测问题

利用用异常检测算法(IF、LOF、OneClassSVM)建立一个单类分类器,检测异常点(少数类)。

 

五、利用深度学习:自编码器

利用AutoEncoder进行特征的抽取,再将抽取的特征送入分类器(LR)

 

六、确定适合样本不平衡问题的评价指标:

ROC,AUC,F1_score

 

转载于:https://www.cnblogs.com/WuSehun/p/11082028.html

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值