LSTM价格预测图-ValueError:x和y的大小必须相同

时间:2019-11-15 00:22:40

标签: python numpy machine-learning keras time-series

我正在研究机器学习,并且正在研究一个试图绘制LSTM股票价格预测时卡住的项目。有关我在做什么的一些信息:

  • 我使用AAPL进行分析
  • 单变量时间序列预测,将close_price作为我的变量
  • 预测未来1个股票价格。
  • 将数据分为训练,测试(0.9,0.1)
  • 创建具有50个时间步长的时间序列
  • 我的X_test始终是形状:(890,50,1),ytest.shape(890,)

使用此函数为LSTM创建时间序列:

def new_timeseries(dataset, time_steps):
  data_X, data_Y = [], []

  for i in range(time_steps, len(dataset)):
    data_X.append(dataset[i-time_steps:i, 0])
    data_Y.append(dataset[i, 0])
  return np.array(data_X), np.array(data_Y)

我输入到LSTM模型中的形状是:

X_train: (8410,50,1)
y_train: (8410,)

我的预测形状是:

X_test: (890,50,1)
y_test: (890,)
y_pred_lstm: (890,50,1)

对于线性回归和RNN层,由于y_pred_rnn和y_pred_lr的形状为:

(890,1)

我收到ValueError

ValueError: x and y must be the same size

当我想用以下代码绘制LSTM的下一个预测时:

def plot_series(x, y, color='r'):
  plt.figure(figsize=(8,6), num=1)
  plt.plot(x.reshape(-1), 'o-')
  plt.scatter(51, y, c=color)
  plt.grid(True)
# Plot predictions 
plot_series(X_train[0], y_test[0], color='g')
plot_series(X_train[0], y_pred_lstm[0], color='r')
plt.show()

我想知道我必须具备什么才能得出我的预测?为什么LSTM模型进行形状预测(890,50,1)? LSTM是否总是根据您使用的时间步长做出预测?现在,我的y_test和y_pred_lstm的形状不相等。而且,如果我需要重塑y_test的形状,应该做成什么形状?

我真的很感谢我应该做些什么,以便我可以使用LSTM模型对此库存数据进行预测。

任何帮助!

0 个答案:

没有答案