분류문제가 아닌 regression에서는 인공지능의 성능을 평가할 때
model.evaluate(X_test, y_test)

와 같은 함수를 사용하는데.
evaluate는 모든 학습이 끝나고 평가를 한다는 특징이 있다.
이 경우, 한 가지 허점이 존재하게 되는데
현재 학습한 인공지능이 학습할 때 사용한 데이터만 잘 맞추는지,
완전 새로운 데이터도 잘 맞출 수 있는지는 알 수 없다는 점이다.
이 때 사용하게 되는 것이
Validation Data 이다.
Validation 란 인공지능이 프로파게이션을 진행하고 백 프로파게이션(학습)을 진행할 때
하나의 epoch가 끝나면 그 때 그 때 실시간으로 학습에 사용된 데이터가 아닌 새로운 데이터로 평가를 진행하는 것이다.
# validation_split= 0.2 의 의미 시험볼 데이터가 있어야하는데 X_train에는 없으므로
# 미리 split으로 나눈 부분이 아닌 현재 X_train 데이터의 20%를 쪼개 test 데이터로 쓰는 것이다.
model.fit(X_train, y_train, epochs = 1000, validation_split= 0.2)
사용 방법은 다음과 같다.
깡통 인공지능을 fit 함수로 fit 할 때 사용하며 validation 관련 파라미터로 설정하는 것이다.
특히 위에서 사용한 validation_split은 실시간으로 평가를 할 때 평가용 데이터를 설정하는 방법 중 하나로
미리 X_train 과 X_test 처럼 split으로 나눈 데이터가 아닌
현재 학습을 진행하는 데이터. 즉, X_train 을 0.2 (20%)로 나누어 test 데이터로 활용하는 파라미터이다.
각 오차율를 구하는 부분에 val이 붙은 부분이 바로 새로운 데이터로 실시간 평가를 내리고 있는 Validation Data 이다.
'TensorFlow' 카테고리의 다른 글
TensorFlow - Flatten 라이브러리를 사용하는 이유 (0) | 2022.06.13 |
---|---|
TensorFlow - EarlyStopping 라이브러리 사용법 (0) | 2022.06.13 |
TensorFlow - 옵티마이저의 Learning Rate (0) | 2022.06.13 |
TensorFlow 에서 GridSearch 하는 방법 (0) | 2022.06.10 |
TensorFlow 에서 회귀(regression)의 문제 모델링하기 (0) | 2022.06.10 |
댓글