gpt4 book ai didi

python - 强制 LSTM Keras 使用时间序列依赖项

转载 作者:太空宇宙 更新时间:2023-11-03 14:37:35 25 4
gpt4 key购买 nike

我有两个时间序列 A 和 B:

A: 1,2,3,1,2,3,3,3,1,2,3,3,3  
B: 0,0,1,0,0,1,1,1,0,0,1,1,1

这个简单的训练集表示信号 B 与 A 相关。事实上,每次 A 等于 3,在同一时间戳下,B 中的值为 1。

我介绍上面的例子只是为了解释我的问题。当我使用 LSTM 和 Keras 来预测数据时,我希望模型能够理解序列中的这种依赖关系。

现在我使用这个配置:

model.add(keras.layers.LSTM(hidden_nodes, activation='sigmoid', input_dim=num_features, input_length=window, consume_less="mem"))
model.add(keras.layers.Dense(num_features, activation='sigmoid'))

optimizer = keras.optimizers.SGD(lr=learning_rate, decay=1e-6, momentum=0.9, nesterov=True)

但我看到 LSTM 预测值没有明显使用时间序列之间的依赖关系。如果我用 5 的窗口进行预测,以便预测下一个点:

A: [1,2,3,1,2]
B: [0,0,1,0,0]

我希望 LSTM 为 A 提供值 3,为 B 提供 1,因为下面的训练集就是这么说的。

问题是我的网络似乎使用信号而没有给信号依赖性赋予正确的权重。

最佳答案

您应该只有一个具有两个功能的系列。

如果 A 和 B 是列表(不是 numpy 数组):

fullSeq = np.array(A + B)
#this shape is (lenA + lenB,)

fullSeq = fullSeq.reshape((2,len(A)))
fullSeq = fullSeq.swapaxes(0,1).reshape((1,len(A),2))

#make sure that the resulting array is something like [[[1,0],[2,0],[3,1],...]]

现在您有了一个 num_features=2 的序列。 A和B现在完全依赖了。

关于python - 强制 LSTM Keras 使用时间序列依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46818865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com