对不平衡数据的回归 CNN 进行加权?

问题描述 投票:0回答:3

我有一个用于回归的 CNN,它获取图像并输出浮点数 0-10。我的模型表现不错,但数据不平衡存在严重问题,使我的模型对几乎所有图像的预测结果在 6-8 之间,但获得了不错的均方误差。我知道有人根据数据集的不平衡程度来衡量他们的类别。那么,有没有办法用回归模型来做到这一点呢?如果有帮助的话,我的输出是一个浮点数,但我的所有数据都在 0-10 范围内以 0.5 为间隔,因此在某种程度上有 20 个不同的类。这是我的数据标签的分布。

我知道还有其他方法,例如:

  • 对少数群体进行过采样。
  • 使用数据增强来制作少数群体的“副本”。
  • 优化不同的性能指标。 (不知道那会是什么)

有什么建议吗?谢谢。

tensorflow deep-learning regression conv-neural-network data-science
3个回答
3
投票

您的数据最初可能代表回归问题,但将其分为 20 组后,您正在针对 20 类分类问题 训练模型。因此,你应该这样对待它,并寻找方法来克服这种不平衡。最流行的方式是:

  • 过采样少数类别
  • 欠采样多数类
  • 使用类别权重

我通常更喜欢第一个,因为模型往往会在更多数据的情况下做得更好,但第三个更容易实现,并且不会在训练中增加额外的计算成本。


1
投票

一种流行的过采样技术是SMOTE

对于优化不同的指标,一种选择是优化加权损失,其中权重与类表示的倒数成正比。


0
投票

要处理回归任务中的不平衡数据,请使用

DenseWeights
包。它根据目标值的稀有性,使用核密度估计 (KDE) 为数据点分配权重。如需直观演示,请参阅下面相关论文中的图。

此方法最好的部分是他们将工作封装在 Python 包中 - [Link]。所以,我们可以直接在我们的损失函数中使用它。

该方法由 Steininger、Michael 等人在题为“基于密度的不平衡回归的加权”的论文中介绍。您可以在论文中找到有关此方法的更多信息 - [Link]

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.