Я пытаюсь оптимизировать свою модель (прогнозирование временных рядов с помощью MLP, LSTM и т. Д.) Путем поиска лучших параметров с помощью Gridsearch. Я масштабировал свои данные, но когда я запускаю Gridsearch, показатели потерь (для обоих mse) во время обучения намного выше, чем если я не использую gridsearch.
Без Gridsearch я делаю простое разделение теста поезда(70/30). С помощью Gridseach я реализовал TimeSeriesSplit.
tscv = TimeSeriesSplit(n_splits=3)
for train_index, test_index in tscv.split(X):
X_train, X_test = X[train_index], X[test_index]
y_train, y_test = y[train_index], y[test_index]
def deep_learning_create(units,batch_s):
model=Sequential()
model.add(Dense(units, activation='relu'))
model.add(Dense(1))
optimizer=optimizers.RMSprop()
model.compile(optimizer='adam',loss='mean_squared_error', metrics=['acc'])
return model
model=KerasClassifier(build_fn=deep_learning_create,verbose=1)
#Random Search for optimal hyper-paramters
params_grid_DeepLearning={'layers_num':[1],
'units':[16],
'learning_rate':[0.01],
'batch_size':[32,64,128],
'epochs':[100]}
random_model=GridSearchCV(model,params_grid_DeepLearning,
n_jobs=1,cv=tscv,refit=True, verbose=2)
random_model.fit(X_train, y_train)
Без Gridsearch
Эпоха 1/100 - 0 с - потеря: 0,0325 - согласно: 0,0053 Эпоха 2/100 - 0 с - потеря: 0,0116 - согласно:0,0053
С GridSearch
Эпоха 1/100 101/101 0 с 642 долл. / Шаг - потеря: 3254,1907 - согласно: 0,0099