Я пытаюсь реализовать подход с раздвижными окнами и использовать DNN для прогнозирования.Длина окна = 24
Что я сделал: у меня есть x
(вход) и y
(выход) в наборе данных.Я сохранил значение "y"
как есть (один массив).И для значения x:
def generate_input(data, sequence_length=1):
x_data = []
for i in range(len(data)-sequence_length+1):
a = data[i:(i+sequence_length)]
x_data.append(a)
return np.array (x_data)
sequence_length = 24
x_train = generate_input(train, sequence_length)
#Shape of X train: (201389, 24)
#Shape of y train: (201412,)
model = Sequential()
model.add(Dense(30,input_shape= (x_train.shape[1],)))
model.add(Dense(20))
model.add(Dropout(0.2))
model.compile(loss="mse", optimizer='rmsprop')
model.summary()
model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs,
validation_split=0.1)
Полученное сообщение об ошибке:
Error when checking target: expected dropout_5 to have shape (20,) but got
array with shape (1,)
Еще один вопрос, как я могу использовать тот же подход для многомерных временных рядов?Я хочу использовать последовательности в качестве входных данных для прогнозирования y
.
Я изменил часть нарезки на:
x_data.append(data[i:i+sequence_length])
Но я получил ошибку:
невозможно скопировать последовательность размером 24 на ось массива с размером 4