다중 분류

Soyoung Park·2022년 9월 28일
0

TIL deep learning

목록 보기
15/22

04_MNIST 손글씨 0-9까지 예측하기.ipynb


^ 다운로드 받음



^ 데이터 형태 확인하기


^ 연한 부분과 찐한 부분을 예측할 수 있다.


^ 데이터 그려보기
  idx 를 변경해줌으로써 여러개 확인 가능


^ 검증데이터 만들기

학습데이터 전처리




^ reshape
  전체데이터 주고 바꿀 값 입력

^ 하나의 list, 1차원으로 바뀜


^ 학습데이터 전처리: 1차원 배열 처리

스케일링

^ 스케일링 안 된 상태

^ 스케일링 하고 난 후


^ 학습할 수 있도록 정답지 만들어주기

^ 모델 구성하기 ( 다중분류할땐 softmax 함수 사용

^ 모델 설정하기

^ 모델 학습하기

import matplotlib.pyplot as plt

his_dict = history.history
loss = his_dict['loss']
val_loss = his_dict['val_loss'] # 검증 데이터가 있는 경우 ‘val_’ 수식어가 붙습니다.

epochs = range(1, len(loss) + 1)
fig = plt.figure(figsize = (10, 5))

# 훈련 및 검증 손실 그리기
ax1 = fig.add_subplot(1, 2, 1)
ax1.plot(epochs, loss, color = 'blue', label = 'train_loss')
ax1.plot(epochs, val_loss, color = 'orange', label = 'val_loss')
ax1.set_title('train and val loss')
ax1.set_xlabel('epochs')
ax1.set_ylabel('loss')
ax1.legend()

acc = his_dict['acc']
val_acc = his_dict['val_acc']

# 훈련 및 검증 정확도 그리기
ax2 = fig.add_subplot(1, 2, 2)
ax2.plot(epochs, acc, color = 'blue', label = 'train_acc')
ax2.plot(epochs, val_acc, color = 'orange', label = 'val_acc')
ax2.set_title('train and val acc')
ax2.set_xlabel('epochs')
ax2.set_ylabel('loss')
ax2.legend()

plt.show()

^ 학습 결과 그리기


^ 모델 평가하기

^ 만개,  0~9 까지

^ 5번째 인덱스 1.80...에 버프를 주는 것임. 
  추정하는 값에 확률적으로 버프를 넣어줌.


^ 예측한 값중 가장 큰 인덱스 확인

^ 실제 숫자값으로 변환

^ 예측한 것과 실제 이미지 일치하는지 확인

^ 수를 바꿔 잘 학습했는지 확인. 
  idx로 변수명을 변경해 여러 수를 대입해본다.

모델 평가 방법에는 두 가지가 있다.

1) 혼동 행렬
2) 분류 보고서

^ 혼동 행렬

^ 분류 보고서

0개의 댓글