用于多元时间序列的 Keras 递归神经网络

我一直在阅读有关 Keras RNN 模型(LSTM 和 GRU)的文章,作者似乎主要关注语言数据或使用由先前时间步长组成的训练实例的单变量时间序列。我的数据有点不同。


我有20个变量,在10年中每年测量100,000个人,作为输入数据,将20年变量在11年级作为输出数据。我想做的是预测第11年变量之一(而不是其他19个)的值。


我的数据结构为X.shape = [persons, years, variables] = [100000, 10, 20]和Y.shape = [persons, variable] = [100000, 1]。下面是我的 LSTM 模型的 Python 代码。


## LSTM model.


# Define model.


network_lstm = models.Sequential()

network_lstm.add(layers.LSTM(128, activation = 'tanh', 

     input_shape = (X.shape[1], X.shape[2])))

network_lstm.add(layers.Dense(1, activation = None))


# Compile model.


network_lstm.compile(optimizer = 'adam', loss = 'mean_squared_error')


# Fit model.


history_lstm = network_lstm.fit(X, Y, epochs = 25, batch_size = 128)

我有四个(相关)问题,请:

  1. 我是否为我拥有的数据结构正确编码了 Keras 模型?我从全连接网络(使用扁平化数据)和 LSTM、GRU 和 1D CNN 模型中获得的性能几乎相同,我不知道我是在 Keras 中犯了错误还是循环模型只是简单的在这种情况下没有帮助。

  2. 我是否应该将Y作为具有形状的序列Y.shape = [persons, years] = [100000, 11],而不是将变量包括在X中,然后变量将具有形状X.shape = [persons, years, variables] = [100000, 10, 19]?如果是这样,如何获取RNN以输出预测的序列?当我使用时return_sequences = True,Keras返回错误。

  3. 这是用我的数据进行预测的最佳方法吗?Keras RNN模型甚至其他模型中是否有更好的选项选择?

  4. 如何模拟类似于我现有数据结构的数据,以使RNN模型优于完全连接的网络?


温温酱
浏览 271回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python