【问题标题】:Test accuracy vs Training time on WekaWeka 上的测试准确性与训练时间
【发布时间】:2018-05-13 19:25:23
【问题描述】:

据我所知,随着训练时间的增加(直到某个点),测试准确率应该会提高;但是用 weka 做实验却产生了相反的结果。我想知道是否误解了什么。 我使用糖尿病.arff 进行分类,其中 70% 用于训练,30% 用于测试。我使用了 MultilayerPerceptron 分类器并尝试了 100,500,1000,3000,5000 次的训练。 这是我的结果,

   Training time   Accuracy  
   100             75.2174 %
   500             75.2174 %
   1000            74.7826 %
   3000            72.6087 %
   5000            70.4348 %
   10000           68.6957 % 

这可能是什么原因?谢谢!

【问题讨论】:

  • 会不会是模型过拟合,训练时间越长,过拟合越低?
  • 您能否添加有关您正在使用的数据和 MLP 参数的更多详细信息..?
  • 你给 MLP 的时间越多,它过度拟合的时间就越多。这会使准确率下降。如果您的权重可能超出您的实际需要,则这种情况尤其可能发生。
  • 你很可能是过度拟合,这似乎被其他答案所覆盖,所以我会给你一个替代方案。您的学习率可能太大,这实际上可能导致收敛的解决方案发散(可能会以比您的结果更不稳定的方式显示自己)。一个简单的检查是打印你的训练准确度和测试准确度,如果你的训练准确度随着时间的推移越来越好,而测试准确度越来越差:这意味着过度拟合。如果它们都变得更糟,则可能是您的学习率和/或您的实现存在更大的问题。

标签: machine-learning classification weka


【解决方案1】:

你有一个非常好的过拟合例子。

以下是对所发生情况的简短说明:

您的模型(不管是多层感知器、决策树还是其他任何东西)可以通过两种方式拟合训练数据。

第一个是泛化 - 模型试图找到模式和趋势并使用它们进行预测。第二个是记住训练数据集中的确切数据点。

想象一下计算机视觉任务:将图像分为两类——人类与卡车。好的模型会发现人类图片中存在但卡车图片中不存在的共同特征(平滑曲线、肤色表面)。这是一个概括。这样的模型将能够很好地处理新图片。过拟合的坏模型只会记住训练数据集的精确图像、精确像素,并且不知道如何处理测试集上的新图像。

如何防止过拟合?

处理过拟合的常用方法很少:

  1. 使用更简单的模型。使用较少的参数,模型很难记住数据集
  2. 使用正则化。限制模型的权重和/或在您的感知器中使用 dropout。
  3. 停止训练过程。再次拆分您的训练数据,这样您将拥有数据的三个部分:训练、开发和测试。然后仅使用训练数据训练您的模型,并在开发集上的错误停止减少时停止训练。

了解过度拟合的良好起点是维基百科:https://en.wikipedia.org/wiki/Overfitting

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 2017-10-05
    • 2021-08-11
    • 1970-01-01
    • 2016-04-04
    • 2017-06-13
    相关资源
    最近更新 更多