如何知道我的神经网络是否没有过度拟合?

问题描述 投票:0回答:2

我正在尝试使用 NNTool 在 MATLAB 上构建神经网络。我有一个巨大的数据集,有超过 20k 的样本。它有 3 个输入参数和 1 个输出。

这是一个数据样本:U 以 0.5 步长变化,直到 10 (0.2 ; 0.5 ; 1.0 ... 10)。 n 从 0 到 1 变化,m 从 0 变化直到等于 n。

Here is a data sample: U varies at 0.5 step until 10 (0.2 ; 0.5 ; 1.0 ... 10). n varies from 0 to 1 and m varies from 0 until it equals n.

我正在使用 Levenberg-Marquartd 算法,并且一直在研究神经元和隐藏层的数量。鄙视一下,其他参数我什么也没做。

在不使用如此庞大的数据集进行过拟合的情况下,我如何知道自己是否取得了良好的性能?

以下是 MATLAB 告诉我的有关性能的信息:

peformance

matlab neural-network
2个回答
1
投票

我建议执行以下操作:

(1) 将样本数据分解为训练/测试集。例如尝试 30% / 70%。

(2) 选择配置:隐藏层数和每层神经元数。

(3) 训练你的网络。

(4) 将训练误差与测试误差进行比较。

(5) 选择其他网络配置。

(6) 执行步骤(3)和(4)。

继续执行此过程,直到您对数据有更好的感觉。如果您的训练误差相对于测试误差非常小,那么您的网络配置很可能会过度拟合您的数据集。


0
投票

这条曲线表明,如果训练和测试之间的误差非常低,您的模型是最合适的。因此它是一个最佳拟合模型。您可以查看该网站以获取更多信息:https://medium.com/@datascienceeurope/do-you-know-overfitting-and-underfitting-f27f87ac2f37。谢谢你

© www.soinside.com 2019 - 2024. All rights reserved.