为什么我的训练和测试集都在 99% 左右,但我的单一预测却预测错误?

数据挖掘 深度学习 美国有线电视新闻网 图像分类 多类分类 预言
2022-03-07 05:05:35

我已经使用 CNN 进行了水果分类,但我在所有事情都正确的地方停了下来,混淆矩阵准确度得分都是正确的,似乎没有过度拟合,但它总是分类错误的水果。为什么会发生这种情况。下面提供了到源代码的链接。谢谢你!

Github 源代码链接

2个回答

看起来新数据与训练数据的分布不同。看起来训练数据只是一个白色背景的水果,而您传递的新图像是蓝色背景的香蕉图片。该模型可能学到了类似的东西:如果是蓝色图像,则为蓝莓,因此它将蓝色香蕉图片分类为蓝莓。

每当新数据的分布与您训练过的数据不同时,不要指望模型能很好地工作,因为 ML 模型只是插值。

如果您的数据集太小,将无法轻松应用于其他新数据。在这种情况下,您应该:

  1. 尝试增加你的训练数据集

    查找新图像并对其进行分类以增加训练数据大小,模型会随着您添加新图像而改进,但这可能会很耗时

  2. 使用迁移学习

    找到其他人在类似数据集上构建的模型,并将其用作模型的起点。他们可能已经找到了一个大型训练数据集,在该数据集上构建了一个模型,并将该模型保存到公共位置以供其他人使用并应用于新数据集。需要找到一个建立在与您的数据有些相似的数据集上的模型。

  3. 数据增强

    也可以帮助#1,但你仍然需要很多图像来训练。

这是用于迁移学习的一个很好的参考:https ://machinelearningmastery.com/transfer-learning-for-deep-learning/