【问题标题】:Multiclass classification or regression?多类分类还是回归?
【发布时间】:2018-09-12 19:06:02
【问题描述】:

我正在尝试训练一个 CNN 模型,以根据图像的审美得分对图像进行分类。有 2,00,000 张图像,每张图像都由 100 多个主题评分。计算平均分数并将分数标准化。

分数的分布近似为高斯分布。因此,由于数据不平衡,我决定在为每个类分配适当的权重后建立一个 10 类分类模型。

我的问题:

对于这个问题,分数是连续的,即0

谢谢!

【问题讨论】:

  • 你是如何决定应该有十个班级的?
  • 图片的评分范围为 0 到 10。

标签: classification regression conv-neural-network gaussian


【解决方案1】:

由于您的标签是连续的,您可以使用 pandas.qcut() 之类的技术将它们分成 10 个相等的分位数,并为每个类提供标签。这可以将回归问题转化为分类问题。

就不平衡而言,您可能希望尝试对少数数据进行过采样。这将确保您的模型不会偏向多数数据。

希望这会有所帮助。

【讨论】:

  • 应用 qcut() 听起来是个了不起的主意。但我不确定这对这个问题有多大作用。我将尝试一下,让您了解分类器模型的性能。感谢您的解决方案。
  • 虽然模型在少数中间类之间混淆(也许我应该尝试减少类的数量),但它比在具有高斯分布目标值的数据集上训练的回归模型或分类模型要好。再次感谢您的解决方案
  • 我的荣幸 Akshayaa。是的,您可以为 3 到 7 个类创建一个管道,并将结果记录在一个列表中,然后选择一个优于其他类的。
【解决方案2】:

我建议您先对参与者的所有数据执行Histogram Equalization,以便他们的评分平均分配。

然后为您的训练集中的每个图像计算Expected Value(如果您还想计算方差),预期值只是投票的平均值。对于方差,(几乎)每种编程语言都有标准函数,您可以在其中输入将输出方差的投票数组。

现在将期望值(如果您还需要方差)作为您网络的基本事实。


编辑:直方图均衡化:

直方图均衡是一种尽可能有效地使用给定数值范围的方法。

在图像的上下文中,这会改变像素值,使最暗的像素变为值 0,最亮的值变为 255。此外,每个灰度值都得到分布,因此它彼此出现的频率相同(平均)。对于您的数据集,您需要相同的。即使您的值不是从 0 到 255,而是从 0 到 10。此外,您不需要(也不应该)将结果值四舍五入为整数。以这种方式,更频繁发生的投票更加分散,并且更少的投票被收缩。

也许您应该首先计算期望值,然后对所有图像的期望值进行直方图均衡。

通过这种方式,CNN 能够更好地区分这些细微差别。

【讨论】:

  • 感谢您的回复。据我了解,直方图均衡是一种调整图像对比度的方法。这如何应用于用户评分的分布?
猜你喜欢
  • 2020-07-05
  • 2020-03-22
  • 2015-11-23
  • 2020-02-05
  • 2018-09-20
  • 1970-01-01
  • 2020-01-30
  • 2020-06-30
  • 2018-02-06
相关资源
最近更新 更多