반응형
해당 데이터프레임은 이전 포스팅과 이어지기 때문에 실습하면서 이해를 원하시면 이전 포스팅을 확인해주시길 바랍니다.
이번 포스팅에서는 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>
반응형