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

Posted

技术标签:

【中文标题】分类:如果一个类的数据量是另一个类的 4 倍,会发生啥?【英文标题】: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?),我的性能会提高吗?

【问题讨论】:

我觉得还是在CrossValidated问比较好 【参考方案1】:

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

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

【讨论】:

我喜欢你的回答@vijay。我想知道当数据增强仅应用于代表性不足的类时(3.)是否有害。分布的失真是否会对分类器的性能造成风险? @Gegenwind 我的意思是对代表性不足的类进行上采样,然后对所有类应用数据增强。

以上是关于分类:如果一个类的数据量是另一个类的 4 倍,会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章

C++ (P70—)

继承和接口

测试一个 Ruby 类是不是是另一个类的子类

对于整数数组类的算法的终极解决方案

类之间的关系

#动态代理#