BESS(Back-End Study Space)

학습, 검증/개발, 테스트 셋 본문

데이터 분석 입문/머신러닝

학습, 검증/개발, 테스트 셋

leeez 2020. 12. 4. 13:38

2020/12/04 - [데이터 분석 입문/머신러닝] - 손실함수(loss function)

 

손실함수(loss function)

2020/12/04 - [데이터 분석 입문/머신러닝] - 파라미터(Parameter)와 하이퍼파라미터(Hyperparameter) 파라미터(Parameter)와 하이퍼파라미터(Hyperparameter) 2020/12/04 - [데이터 분석 입문/머신러닝] - 신경망..

leeezxxswd.tistory.com

#1. 학습, 검증/개발, 테스트 셋

학습 셋 (Training set) - 모델 생성을 위해 학습 과정에 사용
- 모델 파라미터 추정을 위해 소모됨
검증/개발 셋 (Validation/Development set) - 학습 과정에서 하이퍼파라미터를 튜닝하는 데에 사용
- 여러 하이퍼파라미터로 생성된 모델 중 어떤 것이 성능이 좋은지 평가하는 데에 소모됨
테스트 셋 (Test set) - 생성된 모델의 예측 성능 (Predictive performance) 평가
- 미래에 타겟값이 관측되지 않은 데이터라고 가정하고, 예측이 잘 되는지 평가하는 데에 소모됨

※ 왜 테스트 셋을 사용할까?
☞ 테스트 셋은 모델 학습과 튜닝에 전혀 이용되지 않으므로, 향후 발생할 데이터처럼 타겟(Y)가 관측되지 않았다고 가정하여 평가

 

#2. 세가지 셋을 나누는 방법

- 3-way holdout 방법
 1. 갖고 있는 데이터를 3개로 분할 → 학습, 개발, 테스트 셋
 2. 여러 hyperparameter sets으로 후보 모델들을 학습 (학습 과정에 trainig set 소모)
 3. validation set(Hyperparameter을 평가하는 데 소모)을 이용하여 모델들을 평가
   → Best model을 찾고, 그에 해당하는 Best Hyperparameter values을 뽑아 최적의 hyperparameter set을 선정
 4. Training set과 validation set을 합쳐서, 앞서 도출된 Best hyperparameter set으로 모델을 재학습

 5. Test set으로 모델을 평가
 6. 모든 데이터로 최종 모델 학습 이 모델을 미래 예측에 사용

 

#3. 데이터 분할 시 고려할 사항

· 어떻게 나눌까?
- Training 70% / Test 30%
- Training 50% / Validation 30% / Test 20%
- Training 2020.01.01~2020.09.30 / Test 2020.10.01~2020.12.31
- ...

·
고려해야 할 사항?
- 데이터 포인트 수가 충분한가? (다다익선)
- Train / Validation / Test의 데이터 분포가 동일한가? (Random Sampling 할 때 주의 필요)

·
데이터 분할 방법의 고도화?
- 교차 검증(Cross-validation) 종류 활용