📝딥러닝 ANN 텐서플로우 분류의 문제 모델링
import tensorflow as tf
from tensorflow import keras
from keras.models import Sequential
from keras.layers import Dense
Sequential()로 비어있는 틀을 만들어 add 함수로 히든 레이어를 추가하고 아웃풋 레이어도 추가한다
※ 선을 웨이트나 파라미터라고 한다
sigmoid와 tanh는 기울기 소실때문에 히든레이어에 잘 사용하지 않는다
# 레이어를 담을 수 있는 비어있는 틀을 만든다
model = Sequential()
# 비어있는 틀에 히든레이어를 추가한다
# 노드 갯수 입력, 액티베이션 함수 입력(일관셋팅), 들어갈 데이터 갯수 입력(열갯수) 2차원으로 입력
model.add( Dense(units= 6, activation= 'relu', input_shape= (11,) ) )
# 두번째 히든레이어를 추가한다 activation= tf.nn.relu 라고 작성해도 똑같이 동작한다
model.add( Dense(units= 8, activation= 'relu') )
# 결과값이 0과 1사이 값으로 나오게한다(2개로 분류) 시그모이드함수 사용
model.add( Dense(units= 1, activation= 'sigmoid') )
# 지금까지한 작업을 요약해서 보기
model.summary()
모델링이 끝나면 컴파일(Compile)을 해야한다
※ 2개로 분류하는 문제 loss 는 'binary_crossentropy' 을 설정한다
컴파일이란 옵티마이저(Optimizer)와 로스펑션(Loss Function), 검증방법을 셋팅하는 것을 말한다
※ Loss Function = 오차함수또는 손실함수
# 2개로 분류하는 문제 loss 는 'binary_crossentropy' 을 설정한다
model.compile(optimizer= 'adam', loss= 'binary_crossentropy', metrics= [ 'accuracy' ]) # 정확도로 검증
컴파일이 끝나면 전처리한 데이터로 학습시키고 평가하여 정확도를 확인한다
※ 데이터 전처리 주의할점 : 딥러닝은 무조건 피처스케일링 해야한다
※ 학습 코드를 실행 주의할점 : 학습 코드를 실행한 후에 다시 학습하고 싶을때는 모델링 부분부터 다시 실행해야 한다
model.fit(X_train, y_train, batch_size= 10, epochs= 20)
# 데이터 8천개를 10개씩 나눠서 20번을 반복
# 학습이 끝나면 평가를 한다
model.evaluate(X_test, y_test)
# 컴퓨전 매트릭스를 확인하여 어떤 문제를 잘 맞추고 못 맞추는지 확인
from sklearn.metrics import confusion_matrix, accuracy_score
y_pred = model.predict(X_test)
# 비교할 수 있게 변환해준다
y_pred = (y_pred > 0.5).astype(int)
# 정확도 확인하기
confusion_matrix(y_test, y_pred)
accuracy_score(y_test, y_pred)
작업을 완료하였다면 인공지능(model)과 인공지능을 만들때 사용된 변수(encoder, scaler)를 파일로 저장해서 전송한다
'인공지능 > Deep Learning' 카테고리의 다른 글
[Deep Learning] DNN TensorFlow Regression 수치예측 문제 모델링 (1) | 2022.12.28 |
---|---|
[Deep Learning] TensorFlow GridSearch (0) | 2022.12.27 |
[Deep Learning] Dummy variable trap (0) | 2022.12.27 |
[Deep Learning] epoch, batch_size 설정 (0) | 2022.12.27 |
[Deep Learning] Optimizer 종류 (0) | 2022.12.27 |
댓글