데이터를 여러 부분으로 나누고, 각 부분을 훈련과 데스트 용도로 번갈아 사용하여 모델을 평가하는 방법. 모델의 일반화 성능을 더 정확하게 측정할 수 있다.
교차 검증의 필요성
과적합을 피하면서 파라미터를 튜닝하고 일반적인 모델을 만들고 더 신뢰성 있는 모델 평가를 진행하기 위해서이다. 기존에는 데이터를 주로 7:3 비율로 Training set이랑 Test set을 나눴는데, 과적합을 피하기 위해서 Validation set을 추가로 더 나눠주는 것이다. 간단하게 이해하면 Training set은 문제집의 문제 은행이고, Validation set은 문제집에 속한 기출 모의고사(성능 검증/학습에는 활용 x)이고, Test set은 실제 시험이라고 볼 수 있다.
교차 검증의 종류
1. K-Fold Cross Validation
가장 일반적이고 많이 사용됨
k개의 다른 데이터 셋을 구성하고 모델을 학습하는 방법
각 데이터를 학습하고 validation으로 평가를 한 다음 k개의 결과에 대해 평균을 내어 최종 성능을 구한다. 이러면 고정된 validation set이 아니기 때문에 조금 더 신뢰서 있는 결과를 얻을 수 있다.
2. Stratified K-Fold Cross Validation
기존 K-Fold CV와 비슷한 방법으로 수행되나 계층을 고려하는 방법
전체 데이터의 클래스 비율을 고려하여 set을 구성
3. Leave One Out Cross Validation(LOOCV)
하나의 데이터만 남기고 나머지 데이터로 학습을 하고 평가하는 방식
데이터가 많을 수록 굉장히 많은 시간이 걸릴 것
4. Repeated Random Sub Sampling Validation
임의로 validation set을 추출하여 평가하고 하이퍼파라미터를 튜닝할 수 있는 방법