화이트 모드로 보시길 권장합니다
이 글은 [핸즈온 머신러닝 2판] 시리즈로
Hands on Machine Learning with Scikit-Learn, Keras & TensorFlow을 통해 공부하는
머신러닝, 딥러닝에 대한 내용을 정리한 글이다.
머신러닝 모델 테스트
모델 성능 테스트
훈련 데이터를 훈련 세트, 테스트 세트로 나눈 뒤 훈련 세트를 사용해 모델을 학습시키고, 테스트 세트를 사용하여 모델을 테스트한다.
새로운 샘플에 대한 오류 비율을 일반화 오차(Generalization Error) 혹은 외부 샘플 오차(Out-Of-Sample Error)라 한다.
테스트 세트에서 모델을 평가해 새로운 샘플에서 모델이 얼마나 잘 작동할 지 알려주는 추정값(Estimation)을 얻는다.
머신러닝 모델 검증
홀드아웃 검증(Holdout Validation)
모델을 학습시킬 때 과대적합 예방을 위해 규제를 적용하려 할 때, 하이퍼파라미터 값이 각기 다른 10개의 모델을 학습시키는 방법을 사용해 일반화 오차가 가장 낮은 모델을 선택한 후, 실제 서비스에 투입하여도 높은 오차를 만들어 낼 수 있다.
이는 테스트 세트에서 일반화 오차 테스트를 여러번 측정하게 되며 테스트 세트에 최적화된 모델을 만들었기 때문이다.
위와 같은 문제를 일반적으로 해결하는 방법이 ' 홀드아웃 검증(Holdout Validation) '이다.
홀드아웃 검증 방법은 데이터 세트가 작을 경우 잘 작동하지 않는다.
홀드아웃 검증 방법 :
훈련 세트의 일부를 떼어내 여러 후보 모엘을 평가하고 가장 좋은 한 개의 모델을 선택하는 방법이다.
- 훈련 세트에서 일부를 떼어낸 검증세트(Validation Set)을 만든다.
- [훈련세트-검증세트]세트를 사용해 다양한 하이퍼파라미터 값을 가진 모델을 훈련한다.
- 검증세트에서 가장 높은 성능을 보이는 모델을 선택한다.
(위 과정이 홀드아웃 검증 과정이다.) - 선택된 모델을 훈련 세트에서 다시 훈련해 최종 모델을 만든다.
- 테스트 세트를 사용해 최종 모델을 평가해 일반화 오차를 추정한다.
교차 검증(Cross-Validation)
데이터 세트가 작을 경우 사용될 수 있다.
교차 검증 방법:
검증 세트를 여러개 만들어 평가하는 방법이다.
검증 세트마다 나머지 데이터에서 훈련한 모델을 해당 검증 세트에서 평가하며, 모든 모델 평가의 평균을 구해 성능을 측정한다.
교차 검증은 훈련 시간이 검증 세트의 개수에 비례해 늘어나게 된다.
'핸즈온 머신러닝 > Machine Learning' 카테고리의 다른 글
[핸즈온 머신러닝] 머신러닝에 악영향을 끼치는 요소들 (0) | 2024.02.06 |
---|---|
[핸즈온 머신러닝] 머신러닝의 개념&종류 (0) | 2023.08.15 |