5겹 교차 검증(cross-validation)에서는 레코드를 다섯 개의 폴드로 나눕니다. 모델을 다섯 번 학습시키는데, 매번 네 폴드로 학습하고 나머지 한 폴드로 테스트한 뒤 다섯 점수의 평균을 냅니다. 점수 사이의 편차를 보면 어떤 레코드가 테스트에 들어갔는지에 따라 결과가 얼마나 흔들리는지 알 수 있습니다.
예를 들어 CUBIG의 UCI Polish Companies Bankruptcy 분석 글(2026년 10월)은 폴드를 반복하지 않고 한 번 나눈 결과를 보고합니다. 그리고 안정성과 향후 활용 가능성을 판단하려면 반복 평가와 시간 기준 평가가 필요하다고 밝힙니다.
대표적인 변형은 다음과 같습니다.
- k-fold: 데이터를 비슷한 크기의 k개 폴드로 나눕니다. 보통 5개나 10개를 씁니다
- stratified k-fold: 각 폴드가 전체 데이터셋과 거의 같은 클래스 비율을 유지합니다. 한쪽 결과가 드물 때 특히 중요합니다
- 시계열 분할(time-series split): 각 테스트 폴드가 학습 데이터보다 시간상 뒤에 옵니다. 그래서 모델이 테스트 대상보다 나중 레코드로 학습하는 일이 없습니다
- group k-fold: 같은 고객, 환자, 사업장의 레코드를 모두 같은 폴드에 둡니다
교차 검증은 홀드아웃 세트와 어떻게 다른가요?
- 홀드아웃 세트는 한 번 고정해 나눈 데이터입니다. 결과를 내기 쉽고 학습과 독립적으로 유지되지만, 어떤 레코드가 분할에 들어갔는지에 따라 결과가 달라집니다.
- 교차 검증은 분할을 돌아가며 바꾸고 점수의 평균을 냅니다. 그래서 데이터를 더 충분히 활용하고, 테스트 구간이 바뀌어도 결과가 얼마나 안정적인지 보여 줍니다.
- 팀은 흔히 두 방식을 함께 씁니다. 개발 단계의 선택에는 교차 검증을 쓰고, 마지막에는 그런 선택에 한 번도 쓰이지 않은 평가 세트로 확인합니다.
AI 업무에서 교차 검증은 어디서 한계를 드러내나요?
한 팀이 거래 레코드로 10겹 교차 검증을 실행해 높은 평균 점수를 보고합니다. 폴드를 무작위로 뽑았기 때문에 같은 고객의 레코드와 나중 월의 레코드가 대부분의 분할에서 학습 쪽과 테스트 쪽에 모두 들어갑니다. 결국 평균 점수의 일부는 모델이 이미 본 고객과 기간을 얼마나 잘 알아보는지를 잰 값입니다. 그래서 새 고객과 이후 월에 대한 성능을 실제보다 높게 보여 줍니다.
교차 검증으로 공정한 추정치를 얻으려면 두 가지 조건이 필요합니다. 폴드가 데이터의 묶음 구조와 순서를 반영해야 하고, 모든 준비 단계를 각 학습 폴드 안에서만 적합해야 합니다. 뒤의 조건은 데이터 누수 문제이기도 합니다. 시간 순서가 있는 데이터라면 학습 기간 이후의 레코드로 모델을 테스트하는 시계열 분할을 써야 합니다.