【问题标题】:Classification: What happens if one class has 4 times as much data as the other class?分类:如果一个类的数据量是另一个类的 4 倍,会发生什么?
【发布时间】:2018-01-21 19:54:10
【问题描述】:

我正在尝试调试我的分类器的问题。问题是它总是为给定的输入预测相同的类,尽管准确率接近 80%。

我训练我的 CNN 来检测两个类别之间的差异。 A 类有 2575 个 jpeg,B 类有 665 个 jpeg。

这是否会导致我的 CNN 总是预测同一类?每个类中的项目数量之间是否存在太大的不平衡?一般来说,如果我使两个类的大小相同(665 jpegs?),我的性能会提高吗?

【问题讨论】:

标签: python numpy machine-learning tensorflow keras


【解决方案1】:

这个问题似乎是类不平衡的情况,有不同的方法来处理它:

  1. 加权损失: 您可以通过计算 weighted cross entropy 来惩罚多数损失函数的奖励。
  2. 重新采样数据: 正如您所提到的,您还可以对多数类进行下采样,以平衡这些类。您还可以对少数类进行上采样以使其平衡。
  3. 生成增强数据: 由于您正在处理图像,因此您可以对少数类进行上采样,然后在这些图像上使用 data augmentation,这可以解决类不平衡以及过拟合问题并提高泛化能力。
  4. 以及以上所有内容的组合。

【讨论】:

  • 我喜欢你的回答@vijay。我想知道当数据增强仅应用于代表性不足的类时(3.)是否有害。分布的失真是否会对分类器的性能造成风险?
  • @Gegenwind 我的意思是对代表性不足的类进行上采样,然后对所有类应用数据增强。
猜你喜欢
  • 1970-01-01
  • 2016-03-27
  • 1970-01-01
  • 1970-01-01
  • 2019-02-13
  • 1970-01-01
  • 2023-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多