不平衡数据研究

来源:互联网 发布:电影极度寒冷知乎 编辑:程序博客网 时间:2024/04/29 22:53

不平衡数据

不平衡数据的表现:

  1. 较少的正样本数,并且具有最少实例数的类通常是学习任务的兴趣类。
  2. 正负样本交替重叠(如图a)
  3. 小的不相连的样本(如图b)
    Fig.1

不平衡数据的处理方法主要有:

  1. 数据层面:通过对数据进行预处理来减少类不平衡对于分类的影响——随机过采样、随机欠采样、综合采样
  2. 算法层面:通过设计新算法或改进已有算法来解决类不平衡问题
  3. 代价敏感学习:该方法介于数据层面和算法层面之间,它包含了数据层面的转换(通过增加实例的成本)和算法层面的修改(通过修改学习过程来接受成本)。
  4. 集成学习:结合不平衡数据的特点对标准的集成学习的算法进行调整,通过在每个分类器的学习阶段之前使用数据层的方法对不平衡数据进行预处理,或者将一个代价敏感学习框架嵌入到集成学习过程中来解决数据不平衡问题。——基于Boosting的集成学习

一般来说,算法层面和代价敏感的方法更依赖于问题,而数据层面和集成学习方法更具通用性,因为它们可以独立地使用基本分类器。


数据层面

随机过采样——SMOTE算法

该算法通过对少数类样本进行分析,并根据少数类样本人工合成新样本添加到数据集中。

随机欠采样

缺点

传统的不平衡数据学习方法习惯于采用重采样方法来改变不平衡数据集的分布。这些方法能够识别更多的少数类样本并提高分类器的 AUC 值。然而,这样做也能会由于引入了噪声数据(过采样方法)或损失了有用的信息(欠采样方法)而导致更多的多数类样本被错分,从而不可避免地造成整体 accuracy 值的下降。从另外一个角度来讲,在生物信息学特别是癌症分类问题中,多数类经常是肿瘤患者,因此错分这些样本会带来更加严重的后果。

代价敏感学习

在代价敏感学习中,通过给予不同类别的样本不同的错分奖惩代价来区分这两种误分。它将分类器偏向少数类,假设这个类的误判成本较高,并试图最小化这两个类的总成本错误。

算法层面

集成学习

用以处理不平衡数据的集成学习方法

AdaBoost(串行)

迭代调用基分类学习机,每次迭代后,按照训练结果更新训练集合的分布,对于训练失败(分类错误)的样本点赋予更大的权重,这使得下一次迭代时,基学习机分配更多的资源给这些错分样本。在迭代完成之后,最终的分类预测函数采用带权重的投票去产生。

Bagging和随机森林(并行)

通过自主采样法(bootstrap)采样出T个含有m个训练样本的采样集,然后基于每个采样集训练处一个基学习器,再将这些基学习器进行结合。

评价准则

混淆矩阵:
混淆矩阵
通过ROC曲线下面积(AUC)来作为评价分类器在不平衡数据上的性能。

《Review A review on ensembles for the class imbalance problem Bagging-, Boosting-, and hybrid-based approaches》