【问题标题】:How do I test CNN model for less classes than training set in python如何测试 CNN 模型的类比 Python 中的训练集少
【发布时间】:2020-09-25 02:21:51
【问题描述】:

我有热带风暴图像,并尝试建立一个模型来对风暴类别进行分类。在这里,我试图使用以前的风暴图像来预测最后的风暴阶段,但最后的风暴只占 5 个类别,训练集有 7 个类别(基本上我将数据集拆分为最后一个风暴进行测试,将第一个风暴作为训练)。最后我要问的是,是有任何方法可以预测比训练课程更少的课程。

【问题讨论】:

  • 我有点困惑:什么是“额外”类?确实,您可以像@hwei-geok-ng 建议的那样简单地从您感兴趣的类中取最高值,但我不明白为什么您的训练和推理数据具有不同的形状。
  • 这些是风暴类别的图像。我有 14 场风暴。我想使用 13 场风暴制作模型并预测最后一场。所以我的测试是最后一个。前 13 场风暴有 7 个类别(每个风暴有多个类别的多个图像,例如,有时风暴从类别 1 开始并进入类别 3,因此风暴没有关于其余类别的数据)。在这种情况下,最后一场风暴只有 5 个类别。
  • 我现在了解到您正在尝试按顺序预测下一张图像,而不是将其视为纯粹的分类问题。也许这个 [链接] (stackoverflow.com/a/49731169/14328644) 会对您有所帮助。

标签: machine-learning conv-neural-network


【解决方案1】:

在我看来,你的测试集包含的类别是否少于训练类别并不重要,只要模型仍然可以预测你关心的 5 个类别即可。当模型为给定的测试样本生成预测时,您可以对预测的类别进行排序,并仅选取准确度最高的预测类别(例如,前 3 位准确度)而忽略其余类别。

否则,我建议仅使用您关心的类数 (5) 仅使用这些类的训练集来训练您的模型。

【讨论】:

  • 非常感谢。当我对所有 7 个类别进行测试时,我的测试准确性很低。在这种情况下,任何风暴都不能代表所有类别。当我们将它们中的任何一个用作测试集时,它的准确性都会下降。
猜你喜欢
  • 2019-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-11
  • 1970-01-01
  • 2021-11-02
  • 2018-08-19
  • 2021-04-26
相关资源
最近更新 更多