【发布时间】:2019-07-28 22:20:07
【问题描述】:
我正在尝试使用 13 个数据特征创建一个预测未来股票数据的模型。我正在使用 TimeseriesGenerator,但是当我尝试拟合我的模型时,我收到一条错误消息:
ValueError: 检查输入时出错:预期 lstm_1_input 的形状为 (529, 13) 但得到的数组的形状为 (5, 13)
我的数据集有 529 行我想用来训练预测接下来的 5 天。对此的任何帮助将不胜感激。
# Part 1 - Data Preprocessing
# Importing the Libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from keras.preprocessing.sequence import TimeseriesGenerator
# Importing the Training Set
dataset_train = pd.read_csv('data.csv')
training_set_indicators = dataset_train.iloc[:, 1:14].values
# Feature Scaling
from sklearn.preprocessing import MinMaxScaler
sc = MinMaxScaler(feature_range = (0,1))
training_set_indicators_scaled = sc.fit_transform(training_set_indicators)
final_dataset = training_set_indicators_scaled
# Part 2 - Building the RNN
# Importing the Keras libraries and packages
from keras.models import Sequential
from keras.layers import LSTM
from keras.layers import Dense
from keras.layers import Dropout
n_features = final_dataset.shape[1]
n_lag = 5
generator = TimeseriesGenerator(final_dataset, final_dataset, length = n_lag, batch_size = 8)
# Initializing the RNN
regressor = Sequential()
# Adding the first LSTM layer and some Dropout Regularization
regressor.add(LSTM(units = 250, return_sequences = True, input_shape = (final_dataset.shape[0], final_dataset.shape[1])))
regressor.add(Dropout(0.2))
# Adding the second LSTM layer and some Dropout Regularization
regressor.add(LSTM(units = 250))
regressor.add(Dropout(0.2))
# Adding the Output Layer
regressor.add(Dense(units = 13))
# Compiling the RNN
regressor.compile(optimizer = 'adam', loss = 'mse')
# Fitting the RNN to the Training Set
regressor.fit_generator(generator, epochs = 100, verbose = 2)
【问题讨论】:
标签: python keras deep-learning time-series lstm