不平衡数据的回归模型性能不佳

数据挖掘 神经网络 回归 损失函数 阶级失衡
2021-09-16 18:45:45

我正在尝试训练神经网络模型来解决回归问题。我的数据集的特殊性在于它具有目标值的指数分布(不平衡)。因此,例如,该模型似乎只输出小于 2 的值(如果范围是 [0,6]),并且它绝对忽略了较大的目标值,这些值在数据集中具有较小的性能。在这种情况下如何改进模型的结果?

例如,当涉及到多类分类时,我们可以权衡对较小类的错误的惩罚,以提高不平衡数据的性能。在回归方面有什么技巧吗?哪些损失函数可能有用?看起来,MSE 损失函数比 RMSE 更可取。这个问题是不是更强大的损失函数?

有一篇关于这种不平衡回归问题的论文(http://proceedings.mlr.press/v74/branco17a/branco17a.pdf)可能对某人有帮助。但是,我对神经网络的特殊技巧更感兴趣,而不是预处理方法(例如,我无法生成更多数据)。

图片只是分布的一个例子

1个回答

神经网络通常可以解释为回归问题,因此,您可以应用众所周知的方法来处理这个问题。本文很好地介绍了不同的方法。例如,您可以对少数类进行上采样,或者您可以在训练期间进行损失权重平衡。

例如,考虑数据点 xi 可以属于两个类之一 ab. 例如,类a这里是少数。然后,您将在训练期间将计算出的损失乘以权重。

Li={laxi,if datapoint xi is in the minority classlbxi,if datapoint xi is in the majority class
la > lb 对于这个例子来说这很自然。

您还可以研究可以很好地处理不平衡数据集的连续性能度量。例如广义骰子(F1)得分

参考文献:

  • Provost 2000,来自不平衡数据集的机器学习 101
  • 苏德雷等。al 2017,广义骰子重叠作为高度不平衡分割的深度学习损失函数