小编Ast*_*rid的帖子

Keras:将输出作为下一个时间步的输入

目标是预测 87601 个时间步长(10 年)和 9 个目标的时间序列 Y。输入特征 X(外源输入)是 87600 个时间步长的 11 个时间序列。输出还有一个时间步长,因为这是初始值。时间步 t 处的输出 Yt 取决于输入 Xt 和先前的输出 Yt-1。

因此,模型应如下所示:模型布局

我只能找到这个线程:LSTM: How to feed the output back to the input? 第4068章 我尝试使用 Keras 实现此功能,如下所示:

def build_model():
    # Input layers
    input_x = layers.Input(shape=(features,), name='input_x')
    input_y = layers.Input(shape=(targets,), name='input_y-1')

    # Merge two inputs
    merge = layers.concatenate([input_x,input_y], name='merge')

    # Normalise input
    norm = layers.Lambda(normalise, name='scale')(merge)

    # Hidden layers
    x = layers.Dense(128, input_shape=(features,))(norm)

    # Output layer
    output = layers.Dense(targets, activation='relu', name='output')(x) …
Run Code Online (Sandbox Code Playgroud)

time-series output keras recurrent-neural-network

5
推荐指数
0
解决办法
1821
查看次数

基于RNN的非线性多元时间序列响应预测

考虑到室内和室外的气候,我试图预测墙壁的湿热响应。根据文献研究,我相信使用RNN应该可以做到这一点,但我一直无法获得很好的准确性。

该数据集具有12个输入要素(外部和内部气候数据的时间序列)和10个输出要素(湿热响应的时间序列),均包含10年的小时值。该数据是使用湿热模拟软件创建的,没有丢失的数据。

数据集功能: 输入功能

数据集目标: 输出功能

与大多数时间序列预测问题不同,我想在每个时间步长预测输入要素时间序列的全长响应,而不是时间序列的后续值(例如财务时间序列预测)。我还没有找到类似的预测问题(在相似或其他领域),因此,如果您知道其中一个,那么欢迎参考。


我认为使用RNN应该可以实现,因此我目前正在使用Keras的LSTM。在训练之前,我会通过以下方式预处理数据:

  1. 丢弃第一年的数据,因为壁的湿热响应的最初步骤受初始温度和相对湿度的影响。
  2. 分为训练和测试集。训练集包含前8年的数据,测试集包含其余2年的数据。
  3. 使用StandardScalerSklearn 归一化训练集(零均值,单位方差)。类似地使用均值与训练集的方差归一化测试集。

这导致:X_train.shape = (1, 61320, 12)y_train.shape = (1, 61320, 10)X_test.shape = (1, 17520, 12)y_test.shape = (1, 17520, 10)

由于这些都是较长的时间序列,因此我将使用有状态LSTM并按照此处的说明使用stateful_cut()函数削减时间序列。我只有1个样本,所以只有1个batch_size。因为T_after_cut我尝试了24和120(24 * 5);24似乎可以提供更好的结果。这导致X_train.shape = (2555, 24, 12)y_train.shape = (2555, 24, 10)X_test.shape = (730, 24, 12)y_test.shape = (730, 24, 10)

接下来,我按以下步骤构建和训练LSTM模型:

model = Sequential()
model.add(LSTM(128, 
               batch_input_shape=(batch_size,T_after_cut,features), 
               return_sequences=True,
               stateful=True,
               )) …
Run Code Online (Sandbox Code Playgroud)

machine-learning time-series prediction lstm recurrent-neural-network

4
推荐指数
1
解决办法
976
查看次数