Я искал ресурсы для настройки гиперпараметров моделей ANN с использованием TensorFlow в Python, и, безусловно, каждое сталкиваемое мной решение / обсуждение касается проблем классификации с категориальным выходным набором данных и использования простой логистики c регрессионные модели или GridSearch через sklearn (пока те, которые имеют дело только с двоичным выходом).
Моя проблема, однако, имеет непрерывный вывод, и я пытался реализовать GridSearch, но я столкнулся с ошибкой:
"ValueError: непрерывный не поддерживается"
- Я не уверен, работает ли GridSearch, когда выходная переменная непрерывна, но даже если это не так, должны быть некоторые другие функции, которые могут помочь мне оптимизировать мои параметры?
- Нужно ли нормализовать входные и выходные переменные в этом сценарии? Каков наилучший способ сделать это для непрерывных входных и выходных переменных?
from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import GridSearchCV
from keras.models import Sequential
from keras.layers import Dense
def build_classifier(optimizer):
classifier = Sequential()
classifier.add(Dense(10, input_dim = 5, activation = 'relu', kernel_initializer="uniform"))
classifier.add(Dense(5, activation = 'relu', kernel_initializer = 'uniform'))
classifier.add(Dense(1, activation = 'linear', kernel_initializer = 'uniform'))
classifier.compile(optimizer = optimizer, loss = 'mse', metrics = ['accuracy'])
return classifier
classifier = KerasClassifier(build_fn = build_classifier)
parameters = {'batch_size': [25, 32],
'epochs': [100, 500],
'optimizer': ['adam','rmsprop']}
grid_search = GridSearchCV(estimator = classifier, param_grid = parameters, scoring = 'accuracy', cv = 3)
grid_search = grid_search.fit(X_train, y_train)
best_parameters = grid_search.best_params_
best_accuracy = grid_search.best_score_