K-겹 교차검증 (K-Fold Cross-Validation)
쉽게 풀면
모형을 만들 때 사용한 바로 그 자료로 성능을 평가하면 실제보다 성능이 과대평가되기 쉽다. K-겹 교차검증은 전체 자료를 K개의 조각으로 나눈 뒤, 그중 하나를 검증용으로 남겨두고 나머지로 모형을 학습시키는 과정을 K번 반복하며 매번 다른 조각을 검증용으로 사용하는 방법이다. 이렇게 얻은 K개의 성능 결과를 평균 내면 모형의 실제 예측 성능을 더 안정적으로 추정할 수 있다.
왜 중요한가
K-겹 교차검증은 모형이 훈련 자료에만 과적합되지 않고 새로운 자료에도 잘 일반화되는지를 확인하는 표준적인 방법이라, 머신러닝, 통계학, 계량경제학, 생물통계학 등 예측모형을 다루는 거의 모든 분야에서 필수적으로 사용됩니다. 특히 자료가 제한적이어서 별도의 검증용 데이터셋을 확보하기 어려운 상황에서 모형 선택과 하이퍼파라미터 튜닝의 근거를 마련하는 데 핵심적인 역할을 합니다.
언제 쓰나
예측모형이 새로운 자료에서 얼마나 잘 맞을지를 추정하거나, 여러 모형·조율값 중 하나를 고를 때 씁니다. 모형을 만든 바로 그 자료로 성능을 재면 과적합 때문에 성능이 과대평가되므로(과적합), 모형을 만들 때 쓰지 않은 자료로 평가하려는 방법입니다(Stone, 1974; Geisser, 1975).
- 절차: ① 자료를 비슷한 크기의 K개 부분(폴드)으로 무작위로 나눕니다. ② 한 폴드를 검증용으로 빼 두고 나머지 K − 1개로 모형을 적합합니다. ③ 빼 둔 폴드에서 예측 오차를 계산합니다. ④ 이를 K번 돌려 오차를 평균합니다.
- K = 5나 10이 관행적으로 많이 쓰입니다. K가 클수록 훈련 자료가 커져 편향이 작지만 계산이 늘고 분산이 커질 수 있습니다(Hastie 외, 2009). K를 표본 수로 하면 한 개 빼기 교차검증(LOOCV)입니다.
- 분류에서 집단 비율이 치우쳤으면 폴드마다 비율을 맞추는 층화 교차검증을, 같은 사람의 여러 관측이나 시간 순서가 있는 자료는 그 구조를 깨지 않는 분할(집단별/시간순)을 씁니다.
- 교차검증은 우연히 더 좋은 모형을 고르는 과정에서도 같은 자료를 쓰므로, 모형 선택과 최종 성능 평가를 모두 해야 하면 중첩 교차검증을 씁니다(Varma & Simon, 2006).
결과는 이렇게 읽는다
- 폴드마다 얻은 오차(RMSE, 정확도 등)와 그 평균이 나옵니다. 평균을 모형의 일반화 성능 추정치로 읽습니다.
- 폴드 간 표준편차는 성능 추정의 불안정함을 보여 주지만, 폴드들이 훈련 자료를 공유하므로 이 값으로 계산한 표준오차나 신뢰구간은 참 불확실성보다 작을 수 있습니다. K-겹 교차검증 추정치의 분산에 대해서는 어떤 경우에나 통하는 불편추정량이 존재하지 않는다는 결과도 있습니다(Bengio & Grandvalet, 2004).
- 분할을 무작위로 하므로 같은 자료도 분할이 달라지면 결과가 조금 바뀝니다. 분할을 여러 번 반복하는 반복 교차검증이 흔합니다.
- 자료 누수(data leakage)가 가장 흔한 실수입니다. 변수 선택, 표준화, 결측 대체, 조율값 선택을 전체 자료로 먼저 하고 그 뒤에 교차검증하면 검증 폴드의 정보가 훈련에 새어 들어갑니다(자료 누수). 이런 전처리는 매 폴드의 훈련 부분 안에서 해야 합니다.
작은 예 1(컴퓨터로 만든 가상의 자료, n = 100, 설명변수 3개): 5-폴드로 나눈 선형회귀의 폴드별 RMSE는 0.84, 1.27, 0.92, 1.22, 1.14로 평균 1.08, 폴드 간 표준편차 0.19입니다. 다른 무작위 분할로 20번 반복하면 평균이 1.08~1.13 사이에서 움직였습니다.
작은 예 2(누수): 무작위 잡음 변수 200개와 무관한 결과변수가 있는 n = 40 자료에서 결과변수와 상관이 가장 큰 변수 5개를 전체 자료로 먼저 고른 뒤 5-폴드 평가를 하면 평균제곱오차가 0.62로, 아무 정보도 쓰지 않을 때의 기준(결과변수 분산 0.65)보다 좋아 보입니다. 변수 선택을 폴드 안에서 하면 1.15로 기준보다 나쁩니다. 한 번의 모의실험이지만 잡음에서 성능이 만들어진 것처럼 보이는 위험을 잘 보여 줍니다.
논문에는 이렇게 보고한다
- K의 값, 층화 여부, 반복 횟수, 난수 시드, 평가 지표를 적습니다.
- 전처리와 변수·조율값 선택이 폴드 안에서 이루어졌는지 명시합니다. 모형 선택까지 했다면 중첩 교차검증 사용 여부를 적습니다.
- 폴드별 결과를 모두 제시하거나 평균과 표준편차(폴드 간 변동)를 제시합니다. 예:
5-폴드 교차검증에서 RMSE는 평균 1.08(폴드 간 SD = 0.19)이었다.(위 가상의 예 기준입니다.) - 교차검증은 같은 자료 안의 평가이므로 완전히 새로운 자료(외적 타당도)의 성능을 보장하지 않습니다. 가능하면 독립적인 검증 자료의 결과를 함께 제시합니다.
- 같은 자료에서 모형 여러 개를 비교해 가장 좋은 값을 보고할 때는 비교한 모형 수를 밝힙니다.
논문에서는 이렇게 쓰입니다
실제 논문에서
국내 학술지 논문에서 이 용어가 쓰인 문장을 그대로 옮겼습니다. 제목·학술지·연도와 원문 링크를 함께 적었습니다.
“모델의 과적합 문제를 해결하기 위해 K-fold cross validation 방법을 사용하여 모델을 평가하였다.”
항공기 날개의 통계적 중량 예측식 도출 연구, 한국항공우주학회지, 2018 · KCI 한국학술지인용색인 · 원문 보기 ↗
예시 문장
아래는 용어의 쓰임을 보여 주려고 만든 예시로, 실제 논문에서 가져온 문장이 아닙니다.
자료를 10개의 조각으로 나누어 번갈아 학습과 검증에 사용하는 방식으로, 모형이 새로운 자료에서도 잘 작동하는지 확인했다는 뜻이다.
의학 연구에서 표본 크기가 작을 때 예측모형의 신뢰도를 확보하기 위해 흔히 쓰이는 표현이다.
딥러닝, 머신러닝 분야에서 불균형 데이터를 다룰 때 층화 방식을 결합한 교차검증을 설명하는 예문이다.
조금 더 깊게 보면
K값은 흔히 5나 10이 관행적으로 많이 쓰이며, K를 전체 표본 수만큼 크게 잡는 특수한 경우를 leave-one-out 교차검증이라 부릅니다.
분류 문제에서는 각 폴드의 클래스 비율을 원본 자료와 동일하게 유지하는 층화(stratified) 교차검증이 흔히 사용되며, 시계열 자료에는 미래 정보가 과거 예측에 섞이지 않도록 시간 순서를 고려한 변형 방법이 쓰입니다.
교차검증 결과는 보통 평균과 표준편차(또는 표준오차)를 함께 보고하여 성능 추정의 안정성을 나타냅니다.
주의할 점
교차검증은 모형이 새로운 자료에 얼마나 잘 일반화되는지를 평가하는 데는 유용하지만, 자료 자체가 편향되어 있다면 이 문제까지 해결해주지는 못한다.
헷갈리기 쉬운 용어
| 용어 | 어떻게 나누나 | 특징 |
|---|---|---|
| K-겹 교차검증 | K등분, 돌아가며 검증 | 모든 관측이 한 번씩 검증에 쓰임. 안정적 |
| 단순 분할(홀드아웃) | 훈련/검증 한 번 | 간단하지만 어떻게 나누느냐에 결과가 크게 좌우 |
| 한 개 빼기(LOOCV) | K = n | 편향 작지만 계산 많고 분산이 클 수 있음 |
| 교차검증 | K-겹 등을 포함한 총칭 | 검증용 자료를 바꿔 가며 예측 성능을 추정 |
| 편향-분산 상충 | — | K를 고를 때 편향과 분산이 맞바뀌는 이유 |
참고 문헌
- Stone, M. (1974). Cross-validatory choice and assessment of statistical predictions. Journal of the Royal Statistical Society: Series B, 36(2), 111–147.
- Geisser, S. (1975). The predictive sample reuse method with applications. Journal of the American Statistical Association, 70(350), 320–328.
- Hastie, T., Tibshirani, R., & Friedman, J. (2009). The Elements of Statistical Learning (2nd ed.). Springer.
- Varma, S., & Simon, R. (2006). Bias in error estimation when using cross-validation for model selection. BMC Bioinformatics, 7, 91.
- Bengio, Y., & Grandvalet, Y. (2004). No unbiased estimator of the variance of K-fold cross-validation. Journal of Machine Learning Research, 5, 1089–1105.
표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.