텐서플로우 그리드 서치를 이용한 최적의 하이퍼 파라미터를 찾아보자
필요한 라이브러리 임폴트
# Tuning the ANN
from scikeras.wrappers import KerasClassifier
from sklearn.model_selection import GridSearchCV
from keras.models import Sequential
from keras.layers import Dense
텐서플로우 로 그리드 서치 하기 위해서 모델링하는 함수를 만든다
- def 로 함수 만들기
def build_model(optimizer='adam') :
model = Sequential()
model.add( Dense( units=8, 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
그리드 서치를 위해서 그리드 서치용 클래서 파이러를 만들어 사용한다
- KerasClassifier() ,GridSearchCV() 함수 사용
# 클래서 파이어 build_fn= 파라미터에 모델링 함수 입력하고 변수로 저장
model = KerasClassifier(build_fn= build_model)
# 사용할 batch_size, epochs, optimizer 지정한 딕트 만들기
my_param = { 'batch_size': [10, 20], 'epochs' : [10, 20, 30], 'optimizer' : ['adam', 'rmsprop'] }
# 그리드서치 파라미터 안에 입력
grid = GridSearchCV(estimator= model, param_grid= my_param, scoring= 'accuracy' )
# 학습
grid.fit(X_train, y_train)
학습이 완료되면 나온 결과를 확인한다
grid.best_params_
grid.best_score_
# 변수에 저장해서 사용
best_model = grid.best_estimator_
# 1과 0으로 나온다
best_model.predict(X_test)
# 1과 0사이의 숫자로 나온다
best_model.predict_proba(X_test)
# 나온 결과값을 y_pred 변수로 저장해서 사용
y_pred = best_model.predict(X_test)
# 정확도 확인
confusion_matrix(y_test, y_pred)
accuracy_score(y_test, y_pred)
'MACHINE | DEEP LEARNING > Deep Learning Project' 카테고리의 다른 글
[AI] 딥러닝 미분 기울기의 이동 보폭 optimizer learning rate 셋팅 (0) | 2024.04.17 |
---|---|
[AI] 딥러닝 ANN 수치 예측 TensorFlow Regression 문제 모델링 (0) | 2024.04.17 |
[AI] 딥러닝 인공지능 학습시킬 때 에포크(epoch)와 배치사이즈(batch_size) 설정 (0) | 2024.04.17 |
[AI] 딥러닝 더미 베리어블 트랩 (Dummy variable trap) (0) | 2024.04.17 |
[AI] 딥러닝 분류의 문제 ANN TensorFlow 모델링 (0) | 2024.04.17 |