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

Making a future prediction with trained Tensorflow model (LSTM-RNN)

我对如何让 RNN-LSTM model 生成未来值有疑问。我认为我需要将值附加到 "inputs" 以便 X_test 超出我的测试数据集并延伸到未来,但我应该如何去做,或者这些值应该是什么?在这里对我放轻松,只是开始 python/machine 学习。

X_test.shape = (193, 60, 5) 在此代码的末尾,顺便说一句,包含“Open, High, Low, Close, Volume" 值。

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)

你的问题是 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

如果您在实施过程中遇到任何错误,请与我们联系,我们很乐意为您提供帮助。

希望这对您有所帮助。快乐学习!