我在神经网络中写了一个预测代码......
训练中的错误很好(低于1%)但是对于预测错误很高(大约20%)......我认为我的网络过度训练但我不知道解决这个问题的方法......我改变了层数,神经元数量和训练功能但结果没有改变......
所以我把我的代码放在这个论坛中,并希望得到一个答案: 链接文本
此zip文件包含2个文件:
1 - 数据的Excel文件:训练输入的第1-4行,训练输出的第5行(输出第6行但在此代码中未使用),第7-10行用于测试输入,第11行用于测试输出.
2-matlab代码
在运行程序4图表出现后:第一行用于训练数据,第二行用于测试数据.
如果有人知道答案,请更改我的代码并重新输入.
非常感谢.
编辑:
更多描述:
我有2个输出和两个代码...对于第6行(第二个输出)这个代码有可接受的结果但是对于第5行没有好的结果......
如果您认为您的建议有用,请更改我的代码并应用您的建议并将其放在此处...我已在其他论坛中收到一些建议,这些建议是一般解决方案,对结果没有影响...
正如人们所提到的,你可能会过度拟合人工神经网络对训练数据的影响.根据数据集,如果您训练的时间足够长,您可能会获得任意良好的训练数据.另一个问题可能是训练数据无法正确表示问题空间.即,测试数据中的输入与您用于训练的数据非常不同.如果是这种情况,人工神经网络就无法充分发挥作用.
为了克服过度拟合,试试这个.将数据拆分为3组; 培训,验证和测试.训练ANN时也会计算验证集上的误差.如果验证集没有改进,比如5个时代(你可以随时配置它)然后停止训练.
另外,作为一般观点.我没有机会查看您的数据和源代码,但请记住,您需要大量数据才能获得良好的结果.如果你只有一些数据点,那么很难/不可能取得好的结果.
我建议阅读这里的指南,以便对人工神经网络的许多方面进行很好的概述.
祝好运!