用于时间序列预测的LSTM自动编码器

2024-06-02 16:26:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图建立一个LSTM自动编码器来预测时间序列数据。因为我是Python新手,所以在解码部分有错误。我试着像hereKeras那样构建它。我完全不能理解这些例子之间的区别。我现在掌握的代码如下:

问题1:当每个样本有2000个值时,如何选择批量大小和输入尺寸?

问题2:如何让这个LSTM自动编码器工作(模型和预测)?这只是一个模型,但如何预测呢?从样本10开始到数据结束?

Mydata总共有1500个样本,我将使用10个时间步(如果更好的话,可能更多),每个样本有2000个值。如果你需要更多的信息,我也会包括他们以后。

trainX = np.reshape(data, (1500, 10,2000))

from keras.layers import *
from keras.models import Model
from keras.layers import Input, LSTM, RepeatVector

参数

timesteps=10
input_dim=2000
units=100 #choosen unit number randomly
batch_size=2000 
epochs=20

模型

inpE = Input((timesteps,input_dim)) 
outE = LSTM(units = units, return_sequences=False)(inpE)
encoder = Model(inpE,outE) 
inpD = RepeatVector(timesteps)(outE)
outD1 = LSTM(input_dim, return_sequences=True)(outD
decoder = Model(inpD,outD) 
autoencoder = Model(inpE, outD)
autoencoder.compile(loss='mean_squared_error',
          optimizer='rmsprop',
          metrics=['accuracy'])
autoencoder.fit(trainX, trainX,
      batch_size=batch_size,
      epochs=epochs)
encoderPredictions = encoder.predict(trainX)

Tags: from模型importinputsizemodelbatchkeras