经过训练的Tensorflow模型(LSTM-RNN)进行未来的预测

时间:2019-12-28 18:52:44

标签: python tensorflow lstm recurrent-neural-network

我对如何告诉 RNN-LSTM model 来产生未来价值存在疑问。我认为我需要将值附加到“输入”,以便X_test扩展到我的测试数据集之外并扩展到将来,但是我应该如何处理呢?或者这些值应该是什么?在这里对我轻松一点,就进入python /机器学习。

顺便说一下,在此代码结尾处的

X_test.shape = (193, 60, 5)包含“ 打开,高,低,关闭,音量 ”值。

past_60_days = data_training.tail(60)

df = past_60_days.append(data_test, ignore_index = True)
df = df.drop(['Date', 'Adj Close'], axis = 1)

inputs = scaler.transform(df)

X_test = []
y_test = []

for i in range(60, inputs.shape[0]):
  X_test.append(inputs[i-60:i])
  y_test.append(inputs[i, 0])

X_test, y_test = np.array(X_test), np.array(y_test)

y_pred = regressior.predict(X_test)

1 个答案:

答案 0 :(得分:0)

您的问题是Time Series Analysis,是的,可以使用LSTM(RNN)来完成对未来预测的预测。

例如,您要预测第二天的价值,考虑到过去60天的数据,代码的重要部分将是

def multivariate_data(dataset, target, start_index, end_index, history_size,
                      target_size):
  data = []
  labels = []

  start_index = start_index + history_size
  if end_index is None:
    end_index = len(dataset) - target_size

  for i in range(start_index, end_index):
    indices = range(i-history_size, i)
    data.append(dataset[indices])

    labels.append(target[i:i+target_size])

  return np.array(data), np.array(labels)

past_history = 60
future_target = 1

x_train, y_train = multivariate_data(dataset, dataset[:, 0], 0,
                                                   training_data_len, past_history,
                                                   future_target)
x_val_single, y_val_single = multivariate_data(dataset, dataset[:, 0],
                                               training_data_len, None, past_history,
                                               future_target)

请参阅此Comprehensive Tensorflow Tutorial,其中包含Multi-Variate Data(如Open, Close, High, Low, etc..这样的多列)的完整代码,该代码可预测Single StepMultiple Steps

如果在实施时遇到任何错误,请与我们联系,我们将竭诚为您服务。

希望这会有所帮助。学习愉快!