Fork me on GitHub

处理不平衡数据的策略

    在机器学习中,我们在使用模型训练数据时,时常会遇到一个问题,那就是数据不平衡,而且可能是极其不平衡。比如电商中的购买与否,金融欺诈等这种二分类中,往往数  据不仅稀疏且还极不平衡,可能其中某一类数据过多。很多模型对于处理这种不平衡数据来説是非常敏感的,往往造成效果不好。

  那么在进行模型训练前,我们会做一起数据处理或改进模型的过程,怎么去缓解这种不平衡数据造成的后果。通过有以下方法:

  1. 欠采样:这种方法认为多数类的数据中存在冗余,所以从多数类中进行欠采样,即从中选择一部分数据和少数类一起构成训练集。注意这里并没有使用所有数据,可能会造成丢失众多信息。
  2. 过采样:针对少数类进行有放回的自助法抽取更多的数据,以实现过采样,并和多数类一起构成训练集。
  3. 加权:对多数类和少数类的权重参数进行不同的加权。或者修改损失函数,但由于模型往往很复杂,难以对算法本身做修改。
  4. 生成数据:过采样往往有很多重复的样本,数据单一,模型学习能力不足。所以通过构造与现有样本相似的新样本,使模型能够学习更多的数据分布。数据生成方法很多,其中常见的比如
    •   深度学习中的生成对抗网也可以用于用数据生成。不过这个数据生成根据概率生成。不断的进行生成和判别。

   5.总而言之:

  分类在不平衡数据的训练中会出现问题

  要不采样,要不生成。尽量保留正确的类别样本,因为它更具有价值。

  还有在评估时,有的评估指标对不平衡数据是很敏感的。而auc通常对于不平衡数据的评估有较好的健强性。

posted @ 2020-03-21 22:56  石头木  阅读(336)  评论(0编辑  收藏  举报