我正在研究机器学习,并且正在研究一个试图绘制LSTM股票价格预测时卡住的项目。有关我在做什么的一些信息:
使用此函数为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模型对此库存数据进行预测。
任何帮助!