티스토리 뷰

Google Colab 사용

  • Google Drive 마운트 하기, 런타임 유형 GPU로 변경, 상단 우측에 런타임 '연결' 클릭 => ram, 디스크표시
  • 우선 학습 용으로, 내장된 tensorflow를 지우고 1.15.0버전으로 설치 후 런타임 재연결. (다운그레이드)
!pip uninstall tensorflow
!pip install tensorflow==1.15 # 1.15 버전 Tensorflow 설치
# 런타임 다시 실행

import tensorflow as tf
print(tf.__version__)
# 1.15.0

 

성능평가 (Precision, Recall, Accuracy, F1-score)

  • sklearn, metric

classification_report(, , ,)

from sklearn.metrics import classification_report

y_true = [0, 1, 2, 2, 2]  # 정답, one hot 말고 label 형태
y_pred = [0, 0, 2, 2, 1]  # 우리 model이 예측한 값

target_name = ['thin', 'normal', 'fat']

print(classification_report(y_true, y_pred, target_names=target_name))
# - 첫번째 인자 : **t값(정답)** - 1차원 array
#   - Multinomial인 경우 one-hot으로 2차원이라면 1차원으로 변경해야 한다.
# - 두번째 인자 : **pred (예측)** - 1차원 array
# - 세번째 인자 : 출력 시 label을 표현하기 위한 문자열


# precision : true로 분류한 것 중 맞는 것
#   - thin의 precision 0.5 : 1/2 (0으로 예측하고 정답이 0 / 0으로 예측) 
# recall : 실제 true인 것 중 model이 ture로 예측한 것
#   - thin의 recall이 1.0 : 1/1  (정답이 0이고 0으로 예측 / 정답이 0)
# thin의 support 1 => 정답 중 thin이 몇개 있는 지, 데이터 편향을 알 수 있다.

# Accuracy : 맞는 예측 (TP + TN) / 모둔 경우 
#   - 가장 직관적이나, domain에 대한 bias가 존재한다.
#   	- 질병에 걸릴 확률은 잘 찾아내나, 희귀병은 잘 찾아내지 못하는 경우

 

confusion_matrix

confusion matrix

from sklearn.metrics import confusion_matrix

y_true = [2, 0, 2, 2, 0, 1]
y_pred = [0, 0, 2, 2, 0, 2]

confusion_matrix(y_true, y_pred)

 

 

epoch 결정

  • 1 epoch = 전체 training data로 1번 학습
  • epoch 수가 너무 작으면 => underfitting - 대충 학습 됨
  • epoch 수가 너무 많으면 => overfitting - 과적합

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함