Поиск гиперпараметров «look_back» и «look_ahead» для моделей Seq2Seq
Для архитектур глубокого обучения Seq2Seq, а именно LSTM/GRU и многомерного, многошагового прогнозирования временных рядов, важно преобразовать данные в трехмерное измерение: (batch_size, look_back, number_features). Здесь look_back определяет количество прошлых точек данных/выборок, которые следует учитывать при использовании number_features из набора обучающих данных. Точно так же необходимо определить look_ahead , который определяет количество шагов в будущем, для которых вы хотите, чтобы ваша модель прогнозировала.
У меня есть написанная функция, которая поможет достичь этого:
def split_series_multivariate(data, n_past, n_future):
'''
Create training and testing splits required by Seq2Seq
architecture(s) for multivariate, multistep and multivariate
output time-series modeling.
'''
X, y = list(), list()
for window_start in range(len(data)):
past_end = window_start + n_past
future_end = past_end + n_future
if future_end > len(data):
break
# slice past and future parts of window-
past, future = data[window_start: past_end, :], data[past_end: future_end, :]
# past, future = data[window_start: past_end, :], data[past_end: future_end, 4]
X.append(past)
y.append(future)
return np.array(X), np.array(y)
Но look_back и look_ahead — это гиперпараметры, которые необходимо настроить для данного набора данных.
# Define hyper-parameters for Seq2Seq modeling:
# look-back window size-
n_past = 30
# number of future steps to predict for-
n_future = 10
# number of features used-
n_features = 8
Как лучше всего выбирать/находить гиперпараметры look_back и look_ahead ?