数据预处理之数据不平衡问题

Posted 早起的小虫子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据预处理之数据不平衡问题相关的知识,希望对你有一定的参考价值。

 1.数据不平衡介绍 

  数据不平衡,又称样本比例失衡。对于二分类问题,在正常情况下,正负样本的比例应该是较为接近的,很多现有的分类模型也正是基于这一假设。但是在某些特定的场景下,正负样本的比例却可能相差悬殊,如社交网络中的大V判断、电商领域的恶意差评检测、金融领域的欺诈用户判断、风控领域的异常行为检测、医疗领域的肿瘤诊断等。 

2.数据不平衡的常见形式及解决方法

  根据数据量的多少(大数据,小数据)和数据不平衡程度(轻微,中度,重度),可以将数据不平衡问题分为以几类:

  (1)大数据+轻微数据不平衡(正负样本数量相差在一个数量级内)

  如豆瓣上的电影评分数据分布等,此类问题常见的机器学习模型即可解决,无须额外处理。

  (2)大数据 + 中度数据不平衡(正负样本数量相差在两个个数量级内)

  此类问题可以通过下采样的方法处理。

  (3)大数据 + 重度数据不平衡(正负样本数量相差超过两个数量级)

  如金融领域的欺诈用户判断,风控领域的异常行为检测。此类问题可以通过一分类(one-class Learning)或离群点异常检测方法来解决。

  (4)小数据 + 轻微数据不平衡(正负样本数量相差在一个数量级内)

  此类问题可以通过加随机扰动的上采样方法处理。

  (5)小数据 + 中微数据不平衡(正负样本数量相差在两个数量级内)

  如医学图像分析。此类问题可以用数据合成的方法来解决。

  (6)小数据 + 重度度数据不平衡(正负样本数量相差超过两个数量级)

  如医疗领域的肿瘤诊断。此类问题可以通过一分类(one-class Learning)或离群点异常检测方法来解决。

3.常见的解决办法具体介绍

  3.1 数据采样

  数据采样通过对原始数据集进行处理,使各类别数据比例维持在一个合理的比例。可分为上采样和下采样。

  (1)上采样。上采样(Oversampling)是通过把少量数据类别的数据重复复制的方法使各类别数据比例维持在合理的比例,但是基于这样采样方法训练出来的模型容易出现过拟合,可以在每次生成新数据的时候加入轻微随机扰动。

  (2)下采样。下采样(Undersampling)是通过从多数数据类中筛选出部分数据使各类别数据比例维持在合理的比例,但是这种采样方法容易丢失关键数据,可以通过多次随机下采样来解决。

  3.2 数据合成

  数据合成是利用已有样本的特征相似性生成更多新的样本,主要应用在小数据场景下,如医学图像分析。

  3.3 加权

  加权的方法是通过对不同类别分类错误施加不同权重的代价,使得不同类别的加权损失值近似相等。

  3.4 一分类

  当正负样本比例严重失衡时,靠单纯的采样和数据合成已经并不能很好地解决问题。因为上述方法虽然解决了训练数据的正负样本比例问题,但却严重偏离了原始数据的真实分布情况,会导致模型训练结果并不能真正反映实际的情况,会有很大的偏差。

  此时,可以考虑用一分类(One-class Classification)来解决。最常见的一分类方法是One-class SVM,其基本思路如下:利用高斯核函数将样本空间映射到核空间,在核空间中找到一个能够包含所有数据的一个球体,当进行判别时,如果测试数据位于这个高维球体之中,则将其归为多数类,否则就归为少数类。一分类除了可用来解决数据严重不平衡时的分类问题,还可以应用于金融和医疗领域的异常检测。

  总结来说,在样本数据量较大,且正负样本比例相差并不悬殊(两个数量级以内)的情况下,可以考虑使用采样或加权的方法解决;在正负样本数据都非常之小时,可以考虑用数据合成的方法解决;在正负样本数据比例相差悬殊的情况下,可以考虑用一分类的方法解决。

 

转载于:https://www.cnblogs.com/shnuxiaoan/p/12937527.html

以上是关于数据预处理之数据不平衡问题的主要内容,如果未能解决你的问题,请参考以下文章

处理不平衡数据的策略

机器学习中非平衡数据的处理

大数据项目2(数据挖掘之数据预处理相关概念)

keras 图像预处理不平衡数据

Xgboost 处理不平衡的分类数据

用R处理不平衡的数据