数据集类别不平衡问题

类别不平衡问题:

类别不平衡问题指分类任务中不同类别的训练样本数目差别很大的情况。一般来说,不平衡样本会导致训练模型侧重样本数目较多的类别,而“轻视”样本数目较少类别,这样模型在测试数据上的泛化能力就会受到影响。一个例子,训练集中有99个正例样本,1个负例样本。在不考虑样本不平衡的很多情况下,学习算法会使分类器放弃负例预测,因为把所有样本都分为正便可获得高达99%的训练分类准确率。

数据集方面进行处理:

  1. 欠采样:去处一些分类中多余的样本,使达到正负样本平衡;
  2. 过采样:增加一些样本数少的分类中的样本,从而达到正负样本数平衡;
  3. 类别均匀采样方法:通过对每类数据进行一些处理,使得达到最终采样采集到每类数据的概率一样;
    数据集类别不平衡问题
  4. 阈值移动:利用“再缩放”思想:阈值移动方法是使用原始训练集训练好分类器,而在预测时加入再缩放的思想,用来缓解类别不平衡的方法。

线性质再缩放的思想:数据集类别不平衡问题
算法层面的处理方法

  1. 带权重的softmaxLoss:

在样本不均衡分类问题中,样本量大的类别往往会主导训练过程,因为其累积loss会比较大。带权重的softmaxloss函数通过加权来决定主导训练的类别。具体为增加pos_mult(指定某类的权重乘子)和pos_cid(指定的某类的类别编号)两个参数来确定类别和当前类别的系数。(若pos_mult=0.5,就表示当然类别重要度减半)。

2.OHEMLoss:

OHEM被称为难例挖掘,针对模型训练过程中导致损失值很大的一些样本(即使模型很大概率分类错误的样本),重新训练它们.维护一个错误分类样本池, 把每个batch训练数据中的出错率很大的样本放入该样本池中,当积累到一个batch以后,将这些样本放回网络重新训练。通俗的讲OHEM就是加强loss大样本的训练。

3.focalLoss :