簡體   English   中英

用於時間序列預測的LSTM Autoencoder

[英]LSTM Autoencoder for time series prediction

我正在嘗試構建一個LSTM Autoencoder來預測時間序列數據。 由於我是Python的新手,我在解碼部分有錯誤。 我試着像這里Keras一樣建立起來。 我根本無法理解給定例子之間的區別。 我現在的代碼如下:

問題1:當每個樣本有2000個值時,如何選擇batch_size和input_dimension?

問題2:如何使LSTM Autoencoder工作(模型和預測)? 這不僅僅是模型,而是如何預測? 它是從樣本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)

我使用的LSTM模型是這樣的:

def get_model(n_dimensions):
    inputs = Input(shape=(timesteps, input_dim))
    encoded = LSTM(n_dimensions, return_sequences=False, name="encoder")(inputs)
    decoded = RepeatVector(timesteps)(encoded)
    decoded = LSTM(input_dim, return_sequences=True, name='decoder')(decoded)

    autoencoder = Model(inputs, decoded)
    encoder = Model(inputs, encoded)
    return autoencoder, encoder

autoencoder, encoder = get_model(n_dimensions)
autoencoder.compile(optimizer='rmsprop', loss='mse', 
                    metrics=['acc', 'cosine_proximity'])

history = autoencoder.fit(x, x, batch_size=100, epochs=100)
encoded = encoder.predict(x)

它適用於x大小(3000, 180, 40) input_dim=40 (3000, 180, 40) ,即3000個樣本, timesteps=180input_dim=40

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM