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):
    # 모델링
    model = Sequential()
    model.add(Dense(units = 6, activation = 'relu', input_shape = (11,)))
    model.add(Dense(units = 6, activation = 'relu'))
    model.add(Dense(units = 1, activation = 'sigmoid'))
    model.compile(optimizer = optimizer, loss = 'binary_crossentropy', metrics = ['accuracy'])
    return model
    
model = KerasClassifier(build_fn = build_classifier)
my_parameters = {'epochs':[30, 50], 'batch_size':[10,20], 'optimizer':['adam', 'rmsprop']}
grid_search = GridSearchCV(estimator = model, param_grid = my_parameters, scoring = 'accuracy')
grid_search.fit(X_train, y_train)

KerasClassifier와 GridSearchCV를 import한다

build_fn을 작성하고 대입한다.

하이퍼 파라미터들을 딕셔너리 형태로 만들고 대입한다

 

 
grid_search.best_params_
grid_search.best_score_
model2 = grid_search.best_estimator_
grid_search.best_params_는 최고의 파라미터를 딕셔너리로 리턴하고
grid_search.best_score_는 최고의 모델의 평가 점수를 리턴한다 위의경우 accuracy 정확도이다.
model2는 최적의 모델 그 자체이다.

 

+ Recent posts