【问题标题】:Machine Learning Keras accuracy model vs accuracy new data prediction机器学习 Keras 准确率模型 vs 准确率新数据预测
【发布时间】:2018-12-18 12:22:54
【问题描述】:

我使用 keras 做了一个深度学习模型。模型准确度得分为 99%。

    $`loss`
[1] 0.03411416

$acc
[1] 0.9952607

当我使用模型对我的新数据文件进行预测类时,我只有 87% 的类得到了很好的分类。我的问题是,为什么模型准确性和模型预测分数之间存在差异?

【问题讨论】:

  • 您是否在验证集上检查了模型的损失和准确性?
  • 嗨,sdcbr,是的,我通过以下方式进行了检查:model %>% evaluate(x_test, y_test)。测试是指我的验证集。它给了我 0.996
  • 那么您的新数据和您使用的训练/测试数据之间可能存在差异吗?也许分布不同?
  • 当您说分布差异时,能否请您解释一下。有办法改正吗?

标签: r model keras prediction


【解决方案1】:

你的 99% 在训练集上,这表明你自己在训练时正在执行你的算法,你不应该把它当作参考。

您应该始终查看您的测试集,这才是真正重要的价值。

此外,您的准确度应始终如下所示(至少是样式):

例如训练集准确率一直在增长,测试集遵循相同的趋势,但低于训练曲线。

您永远不会拥有完全相同的两组(训练和测试/验证),所以这是正常会有差异。

训练集的目标是概括您的数据并从中学习。

测试集的目标是看看你是否概括得很好

如果您与训练集相距太远,则可能是两组之间存在很大差异(主要是分布、数据类型等),或者如果它们相似,则您的模型过拟合(这意味着您的模型是太接近你的训练数据,如果你的测试数据有一点差异,这会导致错误的预测)。

模型过拟合的原因通常是你的模型太复杂了,你必须简化它(例如减少层数,减少神经元的数量……等等)

【讨论】:

    猜你喜欢
    • 2019-05-30
    • 2020-05-27
    • 2020-10-17
    • 2017-07-13
    • 1970-01-01
    • 2020-11-20
    • 2021-02-17
    • 2020-02-02
    • 2019-01-01
    相关资源
    最近更新 更多