处理不平衡数据的策略
Posted little-horse
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了处理不平衡数据的策略相关的知识,希望对你有一定的参考价值。
在机器学习中,我们在使用模型训练数据时,时常会遇到一个问题,那就是数据不平衡,而且可能是极其不平衡。比如电商中的购买与否,金融欺诈等这种二分类中,往往数 据不仅稀疏且还极不平衡,可能其中某一类数据过多。很多模型对于处理这种不平衡数据来説是非常敏感的,往往造成效果不好。
那么在进行模型训练前,我们会做一起数据处理或改进模型的过程,怎么去缓解这种不平衡数据造成的后果。通过有以下方法:
- 欠采样:这种方法认为多数类的数据中存在冗余,所以从多数类中进行欠采样,即从中选择一部分数据和少数类一起构成训练集。注意这里并没有使用所有数据,可能会造成丢失众多信息。
- 过采样:针对少数类进行有放回的自助法抽取更多的数据,以实现过采样,并和多数类一起构成训练集。
- 加权:对多数类和少数类的权重参数进行不同的加权。或者修改损失函数,但由于模型往往很复杂,难以对算法本身做修改。
- 生成数据:过采样往往有很多重复的样本,数据单一,模型学习能力不足。所以通过构造与现有样本相似的新样本,使模型能够学习更多的数据分布。数据生成方法很多,其中常见的比如
-
- smote方法生成数据见https://www.cnblogs.com/little-horse/p/11241168.html以及spark实现smote https://github.com/jiangnanboy/spark-smote/blob/master/spark%20smote.txt。
- 深度学习中的自编码也可以用于数据的生成。自编码是根据已有数据来进行生成。
-
- 深度学习中的生成对抗网也可以用于用数据生成。不过这个数据生成根据概率生成。不断的进行生成和判别。
5.总而言之:
分类在不平衡数据的训练中会出现问题
要不采样,要不生成。尽量保留正确的类别样本,因为它更具有价值。
还有在评估时,有的评估指标对不平衡数据是很敏感的。而auc通常对于不平衡数据的评估有较好的健强性。
以上是关于处理不平衡数据的策略的主要内容,如果未能解决你的问题,请参考以下文章