작성
·
248
답변 1
0
안녕하십니까,
교차 검증은 학습과 검증(평가) 데이터를 여러번 변경하면서 모델을 학습하고 평가하는 방식입니다. 모델 성능에 대한 평가를 여러번 수행해서 평가의 공정성(?)을 높이기 위한 방식입니다.
그래서 교차검증은 학습을 할때마다 학습 데이터를 변경하여 모델을 재 학습하고 학습된 해당 모델을 검증 데이터로 평가합니다. 첫번째 학습시에는 첫번째 학습 데이터로 모델을 학습하고 남아 있는 검증 데이터로 평가합니다. 두번째 학습 시에는 변경된 두번째 학습 데이터로 모델을 학습하고 변경된 검증 데이터로 평가합니다. 이런식으로 여러번 학습과 검증 데이터를 변경하면서 진행하는 방식입니다.
감사합니다.
그건 구현을 어떻게 하느냐에 따라 달라집니다.
GridSearchCV는 하이퍼 파라미터 튜닝과 교차 검증이 함께 되어 있기에 가장 평가 성능이 좋은 모델로 최종적으로 자동 학습될 수 있습니다.
하지만 일반적인 Cross validation은 최종 테스트 데이터로 예측할 때 학습 된 몇번째 모델을 이용하거나 하지 않습니다. Cross validation은 해당 모델의 평가를 좀 더 다양하게 확인하기 위함입니다. 이를 이용해서 가장 좋은 성능을 가졌을 때의 일부 데이터 세트로 모델을 학습할 필요가 없습니다. 일반적인 Cross validation은 모델의 평가만을 위한 것이라고 생각해 주시면 됩니다.
다만 Cross validation의 Kfold등을 이용해서 가장 좋은 성능을 가졌을 때의 데이터 세트를 이용하여 모델을 학습하고, 이를 이용해서 예측할 수는 있습니다. 하지만 해당 방식은 오버피팅의 우려가 상대적으로 높습니다.
감사합니다.
그럼 최종 테스트데이터로 예측할때 사용되는 모델은 마지막에 학습된 모델인가요? 만약 cv가 3라면 세번째 학습된 모델로 예측하는건지 궁금합니다!