我会直接跳到数据的结构,然后我会问问题:
对于从 200 到 500 单位的质量 X,我有 100 秒的 3 个输出值。因此,数据集的前几行如下所示:
t = 1, m = 200, out_1 = a, out_2 = b, out_3 = c
t = 2, m = 200, out_1 = d, out_2 = e, out_3 = f
...
t = 100, m = 200, out_1 = h, out_2 = i, out_3 = j
t = 1, m = 201, out_1 = m, out_2 = n, out_3 = o
etc.
这是质量 = x 100 秒的输出分布:
现在,我的目标是测试 LTSM 是否可以预测每个质量 100 秒的输出 =
x, x + 1, ..., x + 100
看过之后
x - 300, x - 299, ..., x - 1
就我而言,我是否也应该将时间用作 input_variable?
我无法完全找到一种方法来构建我的数据,但来自https://machinelearningmastery.com/how-to-develop-lstm-models-for-time-series-forecasting的“多并行输入和多步输出” /似乎是对的但我不知道如何防止它处理以下情况:
...
input from second 98, m = 200
input from second 99, m = 200
output from second 1, m = 201
output from second 2, m = 201
...
没有相关性,不应被视为示例。
你会如何处理这个问题?
我很高兴获得类似问题的链接。我今天尝试了各种方法,但结果并不令人满意。
谢谢你们!安德烈亚斯
更新(我尝试过的)以查看质量的前 50 秒是否可以预测接下来的 50 秒:
使用这个笔记本作为骨架: https ://www.kaggle.com/anshuljdhingra/time-series-data-analysis-using-lstm-tutorial/data
将数据传递给 series_to_supervised(df.values, 50, 50) 50 输入秒,50 秒输出
(30100 x 4之前的数据大小,30001 x 400之后的数据大小)
n_train_time = 150 * 100(前 150 个示例,每次 100 秒)
train_X 的大小 = (15000, 200) train_y 的大小 = (15000, 200)
test_X 的大小 = (15001, 200) test_y 的大小 = (15001, 200)
重塑后的 train_X: (15000, 50, 4) 重塑后的 test_X: (15000, 50, 4)
相同的简单 LSTM 模型,具有:
model.add(LSTM(100, input_shape=(train_X.shape 1 , train_X.shape[2])))
和 batch_size=100
batch_size pe 是否应该等于我正在训练的时间窗口?我的逻辑看起来如何?
再次感谢!安德烈亚斯
