8种应对机器学习数据集类别不平衡的策略

数据集类别不平衡通常发生在分类问题上,例如有两个类别(A,B)的数据集,A有80个,而B有20个,那么这个数据集是不平衡的。

大多数数据集每一个类别通常不是完全的平衡,小的不平衡不会有太大的问题。但是当样本分布差距很大的时候,就会有很大的影响。严重的不平衡会导致训练的模型大概率会输出数量较多的那个类别,使模型具有很强的偏向性。

   1.获取更多的数据

这是一个最简单直接的办法,但往往数据并不是很容易获取,需要很大的人力成本。、

   2.  改变评价指标

对于不平衡的数据集,准确率并不能很好的衡量整个模型的性能,可以使用以下一些评价指标:

  1. Confusion Matrix(混淆矩阵): A breakdown of predictions into a table showing correct predictions (the diagonal) and the types of incorrect predictions made (what classes incorrect predictions were assigned).
  2. Precision: A measure of a classifiers exactness.
  3. Recall(召回率): A measure of a classifiers completeness
  4. F1 Score (or F-score): A weighted average of precision and recall.
  5. Kappa (or Cohen’s kappa): Classification accuracy normalized by the imbalance of the classes in the data.
  6. ROC Curves: Like precision and recall, accuracy is divided into sensitivity and specificity and models can be chosen based on the balance thresholds of these values.

   3.对数据进行重新采样 

过采样:对于数量较少的类别重复出现。

欠采样: 将数量较多的类别中的样本删除一些,是类别数量均衡。

当有大量的数据时,进行欠采样

当数据量较小时,进行过采样

可以考虑随机采样或者非随机采样(分层采样)

考虑不同的重采样比例

   4.生成合成数据

在图像领域,可以通过数据增强的方法,旋转,翻转,裁剪等方法,或者现在很多的使用GAN等网络生成新的数据。

  5.尝试其他的方法


不要总是用同一种熟悉的方法解决所有问题,针对不同的问题,选择更加合适的方法。

例如决策树在数据分布不均衡时表现的更好。

    6.惩罚模型

给模型加上惩罚,使模型训练时更偏重样本较少的类别。

    7.转变视角

对于一些特殊问题,从直接研究到研究异常,研究变化。

    8. 创新

比如将一个大的类别细分成几个小类别来使数据集均衡。

猜你喜欢

转载自blog.csdn.net/qq_32799915/article/details/80748017