본문 바로가기
『 Python 』/AI

[AI] 1.3 머신러닝 테스트와 검증

by Play IT 2023. 2. 5.
반응형

모델이 새로운 샘플에 얼마나 잘 작동할지 아는 방법은 실제로 적용해 보는 것입니다.

가장 좋은 방법은 훈련 데이터를 훈련 세트와 테스트 세트로 나누는 것입니다. 샘플에 대한 오류 비율을 일반화 오차(외부 샘플 오차)라 하며 테스트 세트에서 모델을 평가함으로써 이 오차에 대한 추정값을 얻습니다. 해당 값은 새로운 모델에 얼마나 잘 작동할지 알려줍니다. 보통 훈련세트 80%, 테스트 세트20%로 분리합니다.

 

[하이퍼파라미터 튜닝과 모델 선택]

모델평가는 그냥 테스트 세트를 사용하시면 됩니다. 만약 문제를 해결하기 위해 두 모델인 선형 모델과 다항모델 중 어떤것 을 사용할지 갈등하고 있다고 합시다. 둘중 하나를 결정하는 방법은 두 모델 모두 훈련 세트로 훈련하고 테스트 세트로 얼마나 잘 일반화되는지 비교해 보면 됩니다.

모델을 학습하는 과정에서 과대적합을 피하기위해 규제를 적용하기위해 하이퍼파라미터값을 설정해야하는경우에 어떻게 값을 주면 될까요?  하나의 방법으로는 여러개의 값을 넣어보고 찾아보는 것입니다. 

하지만 일반화 오차를 테스트하기위해여러번 측정해 안좋은 결과를 낼수 있습니다.

이를 해결하기 위해 일반적인 방법으로 홀드아웃 검증이 있습니다. 해당 방식은 훈련 세트의 일부를 떼어내어 여러 후보 모델을 평가하고 가장 좋은 하나를 선택하는 방식입니다. 때어낸 하나의 세트를 검증 세트라 불립니다.(개발 세트, 데브 세트라고도 불립니다.) 홀드아웃 검증이 종료되면 최선의 모델을 전체 훈련 세트에서 다시 훈련하여 최종 모델을 만들면 됩니다. 해당 방법은 일반적으로 잘 쓰이지만 검증 세트가 너무 작을경우 모델이 정확하게 평가되지 않아 잘못 선택될수있습니다. 해결 방법중 하나는 교차 검증을 수행하는 것입니다. 해당 방식은 검증 세트마다 나머지 데이터에서 훈련한 모델을 해당 검증세트에서 평가하는 방식이기에 모든 모델의 평가를 평균하여 훨씬 정확한 성능을 측정해 낼수 있습니다. 하지만 훈련 시간이 검증 세트의 개수에비례해 늘어난다는 단점을 지니고 있습니다.

 

 

 

반응형

댓글