Tensorflow - GridSearch 최적의 하이퍼 파라미터 찾기

반응형

해당 데이터프레임은 이전 포스팅과 이어지기 때문에 실습하면서 이해를 원하시면 이전 포스팅을 확인해주시길 바랍니다.

이번 포스팅에서는 GridSearch를 이용하여 최적의 하이퍼 파라미터를 찾는 절차와 소스 코드를 공유합니다.

 

이전 포스팅 : Tensorflow - ANN(인공신경망)으로 딥러닝하기


필요한 라이브러리 호출

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=8, 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_param = { 'epochs' : [30, 50], 'batch_size' : [10, 20], 'optimizer' : ['adam', 'rmsprop'] }

GridSearch 모델링 & 학습

  • 이전 포스팅에서 train_test_split 으로 분리되어 있던 X_train, y_train 이용
grid_search = GridSearchCV(estimator=model, param_grid=my_param, scoring='accuracy')

grid_search.fit(X_train, y_train)

최적의 파라미터 확인

grid_search.best_params_
>>> {'batch_size': 10, 'epochs': 50, 'optimizer': 'adam'}

grid_search.best_score_
>>> 0.8487500000000001

grid_search.best_estimator_
>>> <keras.wrappers.scikit_learn.KerasClassifier at 0x7fbbb84f0d10>
반응형