分类:如果一个类的数据量是另一个类的4倍,会发生什么?

时间:2017-08-14 02:26:11

标签: python numpy machine-learning tensorflow keras

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

我训练我的CNN来检测两个班级之间的差异。 A级有2575个jpegs,B级有665个jpegs。

这是否会导致我的CNN问题始终预测同一个类?这是每个班级中的项目之间的不平衡吗?一般来说,如果我使两个类的大小相同(665 jpegs?),我的表现会有所改善吗?

1 个答案:

答案 0 :(得分:9)

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

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