我是机器学习的新手,我正在尝试在MATLAB上实现神经网络,以便根据此证券收盘价的过去 Value 预测股票市场证券的下一个未来收盘价 . 现在我迷失了,所以我正在寻找一些比我更了解神经网络的人的指导 .
所以为了做这个预测,我使用MATLAB的原生函数 layrecnet
. 我用来训练RNN的输入是给定日期范围(例如2010年1月1日至2015年1月1日)的每日收盘价,而我使用的目标与输入相同,但转移一个单位的时间 .
例如,如果我们有输入:
inputSeries = [0.1 0.2 0.3 0.4 0.5 0.6 0.61 0.62]
然后我使用的目标是:
targetSeries = [0.2 0.3 0.4 0.5 0.6 0.61 0.62 0.63]
一切都从0到1归一化 . 这种方法在我的脑海中是有意义的,因为对于输入中的给定序列,网络将具有该序列的下一个值作为目标 . 虽然根据我在测试数据上获得的结果,网络似乎没有预测任何东西;它只是遵循在测试数据上观察到的相同模式 .
我一直在研究如何实现一个RNN来预测MATLAB上序列的下一个值,尽管没有找到任何可以引导我走上正确道路的东西 . 我使用的方法完全错了吗?我不应该使用简单的RNN吗?我应该使用另一种方法解决这个问题吗?
1 回答
您的方法似乎很合理,是的RNN适合您的数据(时间序列) . 然而,由于它们具有混乱行为,并且股票市场预测是其中之一(其他包括癫痫发作预测,地震预测,飓风预测......),因此存在相对较小的一组难以预测的问题 . 所以,如果你因为没有取得好成绩而要求,请记住这一点 . 由于您正在使用
MATLAB
,我建议查看NARXNET
(带外部输入的非线性自回归神经网络,https://www.mathworks.com/help/nnet/ref/narxnet.html) . 这些类似于类固醇的递归神经网络 . 您想最初以开环形式训练,然后以闭环形式重新训练 . 这是一个有用的链接,讨论开放/闭环形式:https://www.mathworks.com/matlabcentral/answers/310535-narxnet-closed-loop-vs-open-loop . 希望这可以帮助 . 这里有一些代码可以帮助您入门 .