我使用Bike Sharing dataset来预测一天中的租赁数量,并给出了输入。我将使用2011年的数据进行培训,并使用2012年的数据进行验证。我成功地建立了一个线性回归模型,但现在我正试图找出如何使用递归神经网络来预测时间序列。使用递归神经网络的时间序列预测
数据集有10个属性(例如月,工作日或不工作日,温度,湿度,风速),所有数字,尽管属性是日(星期日:0,星期一:1等)。
我认为有一天可能会取决于前几天(我不需要全部10个属性),所以我想过使用RNN。我不太了解,但我读了一些东西,也this。我想到这样的结构。
我将有10 input neurons
,a hidden layer
和1 output neuron
。我不知道如何决定隐藏层有多少神经元。
我想我需要一个矩阵输入层连接到隐藏层,一基体,以隐藏层连接到输出层,和一个矩阵来隐藏层中的相邻时间步t-1
t
连接,到t
,到t+1
。这是总共3个矩阵。
在一个教程中,激活函数是sigmoid
,尽管我不确定,如果我使用sigmoid函数,我只会得到0和1之间的输出。应该如何使用激活函数?我的计划是重复这一n
时间:
- 对于每个训练数据:
- 正向传播
- 传播输入到隐含层,将它添加到以前隐藏层的传播到当前的隐藏层。并将其传递给激活函数。
- 传播隐藏层输出。
- 查找错误和它的衍生物,其存储在一个列表
- 返回传播
- 查找列表当前层和错误
- 查找当前隐层误差
- 商店更新权重
- 通过multiplyi更新权重(矩阵)学习率。
- 正向传播
这是做了正确的方法是什么?我需要真正的数值作为输出,而不是0-1之间的数字。
您是否考虑过使用现成的RNN包,如凯拉斯在Python?这可以让你的任务更轻松。 –