如何处理数据不平衡问题?

0 引言

我们在处理实际业务时,经常会遇到训练数据中不同类别样本比例差距过大的情况。例如银行贷款业务欺诈问题,我们要清楚银行贷款业务主要识别的就是具有一定风险的贷款客户,而实际样本中,大多数都是及时偿还的正样本,只有少数是未偿还的负样本,如果我们不做任何预处理,模型很可能因为正样本数量多,而把很多风险客户识别成正常客户,造成损失。所以首先要明确具体业务的根本要求。下面是我总结的解决办法,有什么问题希望大家指正,谢谢。

1 解决办法

下面负样本代表样本量少的类型,正样本代表样本量大的类型。
1)过采样和降采样
从字面就可以很好理解,过采样就是在负样本数量很少,几百或者几千的情况下,对负样本进行SMOTE处理,增加到一定的预定数量。
降采样就是在负样本数量达到模型的预计标准,几万或者几十万以上,而正样本在几百万以上,则选择对正样本进行随机抽样的方式,降低到一定的预定数量,平衡数据集。
2)使用不同的训练集,构建多个模型进行融合
例如负样本个数5000,正样本个数100000,将正样本随机抽取50000个,并且分成10等份,负样本与每一份正样本组成1:1的10个训练集,训练10个模型进行融合。

2 模型评估

对于不平衡数据集,训练的模型使用准确率评估模型,容易出现较大的问题。例如10000个样本中100个负样本9900个正样本,模型一个负样本没有识别出来,所有的样本都识别为正样本,准确率却为99%,所以根据业务需求,可以分别识别不同类别的样本识别准确率,或者使用F1值来评估模型。

猜你喜欢

转载自blog.csdn.net/weixin_40192195/article/details/88144114