Я решаю проблему двоичной классификации. «Точность» не является точной метрикой для двоичной классификации. Итак, я намерен использовать «Область под кривой» в гиперпараметрах Grid Search с Keras. Можно ли дать мне знать, как использовать метрику AUC в моем сеточном поиске
import timeit
start = timeit.timeit()
def DNN_model(activation_1='relu', activation_2='relu',
neurons_input = 1, neurons_hidden_1=1,
optimizer='adam', loss = 'mse',dropout_rate = 0.2,
input_shape=(X_train.shape[1],)):
model = Sequential()
model.add(Dense(neurons_input, activation=activation_1, input_shape=input_shape, kernel_initializer='random_uniform'))
model.add(Dropout(dropout_rate))
model.add(Dense(neurons_hidden_1, activation=activation_2, kernel_initializer='random_uniform'))
model.add(Dropout(dropout_rate))
model.add(Dense(1, activation='sigmoid'))
model.compile (loss = loss, optimizer=optimizer,, metrics=['accuracy'])
return model
model = KerasClassifier(build_fn=DNN_model, epochs=20)
parameters = {'activation':['softmax', 'softplus', 'softsign', 'relu', 'tanh', 'sigmoid', 'hard_sigmoid', 'linear'],
'loss' : ['mse', 'binary_crossentropy'],
'activation' : ['relu' , 'tanh', 'sigmoid', 'hard_sigmoid', 'linear'],
'dropout_rate' : [0.0 , 0.2 , 0.4, 0.7, 0.9],
'neurons' : [5, 10, 20, 50, 100],
'optimizer' : ['SGD' , 'RMSprop' , 'Adagard', 'Adadelta' , 'Adam' , 'Adamax' , 'Nadam']}
clf = GridSearchCV(model, parameters)
clf.fit(X_SMOTE, y_SMOTE)
end = timeit.timeit()
print('Total time spent for hyperparameters: ', end - start)