python 这是过度拟合吗?有什么好的建议来减轻它?[关闭]

beq87vna  于 2023-04-10  发布在  Python
关注(0)|答案(1)|浏览(98)

**已关闭。**此问题为not about programming or software development。当前不接受答案。

此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site主题相关,您可以留下评论以解释在何处可以回答此问题。
14小时前关闭
Improve this question
我正在训练一个关于交易烛台的卷积模型,我正在预测未来的价格。我已经将数据分割为90%训练和10%测试。在图像中,您可以看到训练和测试数据上的损失,很明显它与训练数据非常吻合,但并没有真正学习到测试数据的一些概括。也许是因为数据很难找到特征或者模型不够大?模型不能很好地推广的原因是什么?为什么会发生这种情况,有没有一些常见的陷阱?

model = nn.Sequential(
    nn.Conv2d(1, 64, kernel_size=(120, 6)),
    nn.ReLU(),
    nn.Dropout(0.3),
    nn.Conv2d(64, 16, kernel_size=(30, 1)),
    nn.ReLU(),
    nn.Flatten(),
    nn.Linear(5312, 8000),
    nn.ReLU(),
    nn.Linear(8000, 1000),
    nn.ReLU(),
    nn.Linear(1000, 500),
    nn.ReLU(),
    nn.Linear(500, 50),
    nn.ReLU(),
    nn.Linear(50, 2)
)

ergxz8rk

ergxz8rk1#

你的模型似乎在大约15个epoch后过度拟合。我不认为这可能是模型不够大的原因,但可能是你没有足够的数据。在不增加训练数据的情况下增加模型大小不是一个有用的策略。我建议的是要么增加训练数据,要么尝试调整超参数,如学习率,dropout等,但是如果什么都不起作用,那么我建议你使用你最好的检查点,在那里测试的MSE损失最小。
PS:你甚至可以尝试改变优化器或使用学习率衰减。一般来说,建议为这种分析建立一个验证集,并建立一个单独的测试集来报告最终的数字

相关问题