Blog/교차검증

Model Lab

교차검증

믿을 수 있는 모델 점수 매기기

SK

Skari Team

Skari

2026년 7월·8분

K-겹 교차검증

데이터를 k개 겹으로 나눠, 각 겹이 차례로 검증 세트가 되고 나머지가 학습합니다.

■ 검증□ 학습

데이터를 학습과 테스트로 한 번 나누면, 얻는 성능은 어떤 데이터가 우연히 테스트에 포함됐는지에 따라 달라집니다. 쉬운 분할이면 모델이 좋아 보이고, 어려운 분할이면 나빠 보입니다. 한 번의 평가 결과만으로 모델 성능을 판단하기는 어렵습니다.

Note

교차검증은 데이터를 한 번만 나누는 대신 여러 번 나누어 평균을 냅니다. 이렇게 하면 성능 지표가 우연한 데이터 분할의 영향이 아니라 모델이 실제로 얼마나 일반화되는지를 반영합니다.

K-겹의 동작

데이터를 k개의 균등한 겹으로 나눕니다. 그중 k−1개로 학습하고 남긴 하나로 검증합니다. 모든 겹이 정확히 한 번씩 검증에 사용되도록 반복한 뒤, k개의 점수를 평균합니다. 5-겹 교차검증은 다음과 같이 진행됩니다:

Fold 1   [ 검증 ][ 학습 ][ 학습 ][ 학습 ][ 학습 ]
Fold 2   [ 학습 ][ 검증 ][ 학습 ][ 학습 ][ 학습 ]
Fold 3   [ 학습 ][ 학습 ][ 검증 ][ 학습 ][ 학습 ]
Fold 4   [ 학습 ][ 학습 ][ 학습 ][ 검증 ][ 학습 ]
Fold 5   [ 학습 ][ 학습 ][ 학습 ][ 학습 ][ 검증 ]
  • k = 5 또는 10이 흔한 선택
  • 모든 데이터가 한 번씩 검증에 사용되고, 나머지 겹에서는 학습에 쓰임
  • 점수의 변동폭이 모델의 안정성을 알려줌

왜 평균 성능을 사용하는가

예제로 살펴보면 바로 이해됩니다. 5-겹 교차검증을 실행하면 겹마다 하나씩 다섯 개의 점수가 나옵니다:

분할정확도
191%
284%
389%
487%
590%
평균88.2%

단일 분할에서는 우연히 91% 겹에 걸리면 모델이 훌륭하다고 착각하거나, 84% 겹에 걸리면 약하다고 착각할 수 있습니다. 평균 88.2%가 더 신뢰할 수 있는 성능 지표이고, 변동폭(84%~91%)이 모델이 얼마나 안정적인지 알려줍니다. 한 번의 91%보다 평균 88.2%가 더 믿을 만합니다.

알아둘 변형

  • 층화 k-겹(Stratified K-Fold): 각 겹의 클래스 균형을 유지하며, 불균형 데이터에 필수적입니다
  • 그룹 k-겹: 관련 행(같은 사용자, 같은 사이트)을 함께 유지
  • 시계열 분할: 과거로 학습하고 미래로 검증하며, 시간을 절대 섞지 않습니다
  • LOOCV(Leave-One-Out): k가 행 수와 같으며, 철저하지만 비용이 커서 주로 작은 데이터에 사용합니다

Watch out

층화 k-겹은 불균형 데이터에서 특히 중요합니다. 정상 95%, 불량 5% 같은 데이터를 일반 K-겹으로 나누면 어떤 겹에는 불량이 거의 없을 수 있고, 정작 관심 있는 클래스가 거의 없는 겹으로 모델을 검증하게 됩니다. 층화 k-겹은 각 겹이 같은 95/5 균형을 유지하도록 강제합니다.

누수의 함정

교차검증은 모든 전처리 단계가 각 겹 안에서 이루어질 때만 신뢰할 수 있는 결과를 제공합니다. 전체 데이터로 먼저 스케일링하거나 결측 대치를 하면 검증 겹의 정보가 학습에 반영되는 정보 누수(Data Leakage)가 발생하고, 모든 성능을 과대평가하게 됩니다.

Watch out

스케일러·대치기·인코더를 학습 겹에만 적합한 뒤 검증 겹에 적용하세요. 분할 전에 전체 데이터로 적합하는 것이 가장 흔한 실수입니다.

SKARI Model Lab의 교차검증

Model Lab은 적절한 교차검증을 내장해 모델을 검증합니다. 따라서 표시되는 정확도는 단일 분할에서 얻은 성능이 아니라, 여러 겹에 걸쳐 평균된 누수 없는 추정치입니다.

SKARI의 Auto Compare를 신뢰할 수 있는 이유가 여기에 있습니다. 모든 모델이 같은 교차검증 조건에서 평가되므로 비교가 공정합니다.

모델교차검증 정확도
Logistic Regression88.2%
Decision Tree86.4%
Random Forest91.0%
XGBoost92.3%
  • 모든 모델에 일관되게 적용되는 k-겹 검증
  • 누수를 막기 위해 겹 안에서 적합되는 전처리
  • 평균뿐 아니라 안정성을 확인할 수 있도록 성능의 변동폭 표시

Takeaway

모델을 비교하는 결과를 신뢰할 수 있습니다. 동일 조건에서 여러 겹에 걸쳐 평균되고, 전처리도 깨끗하게 유지됩니다.

자주 묻는 질문

몇 겹이 좋나요?

5나 10이 안정성과 비용의 균형입니다. 겹이 많으면 추정이 매끄럽지만 실행이 오래 걸립니다.

테스트 세트가 여전히 필요한가요?

네, 맨 마지막을 위한 최종 테스트 세트를 남겨두세요. 교차검증은 모델 선택용이고, 테스트 세트는 학습에 전혀 사용하지 않은 최종 검증용 데이터입니다.

시계열 데이터는요?

절대 섞지 마세요. 항상 과거로 학습하고 미래로 검증하는 전진 연쇄 분할을 쓰세요.

교차검증과 Grid Search는 어떤 관계인가요?

교차검증은 모델을 평가하는 방법이고, Grid Search는 여러 하이퍼파라미터 조합을 각각 교차검증으로 평가해 비교하고 최적의 설정을 찾는 방법입니다. 즉 Grid Search는 교차검증을 여러 번 반복하는 것입니다.

LOOCV란?

Leave-One-Out 교차검증은 k를 행 수와 같게 둡니다. 각 행을 나머지 전부로 학습한 모델에 한 번씩 검증합니다. 철저하지만 느려서 주로 작은 데이터에 씁니다.

결론

교차검증은 우연에 영향을 받을 수 있는 단일 평가 결과를 신뢰할 수 있는 성능 지표로 바꾸는 방법입니다. 겹을 돌리고 전처리를 그 안에서 수행하면, 모델 비교가 신뢰할 수 있는 기준 위에서 이루어집니다.

Takeaway

한 번의 분할만 믿지 마세요. 여러 번 나누어 평균으로 모델의 실제 성능을 확인하세요.

과적합과 정규화

교차검증이 잡아내는 것

하이퍼파라미터 튜닝

성능 평가 루프로서의 교차검증

데이터 정규화

겹 안에 머물러야 하는 스케일링