교차 검증Cross-Validation

자료를 조각내 돌아가며 점검하고 점수를 평균 내는 방법

핵심 정리
  • 교차 검증은 자료를 몇 조각으로 나눈 뒤 한 조각씩 돌아가며 점검용으로 쓰는 방법이에요.
  • 조각 수만큼 학습을 되풀이하고, 나온 점수를 평균 내서 한 숫자로 봐요.
  • 한 번만 잘라 점검하면 점수가 어느 자료가 걸렸느냐에 따라 크게 흔들려요. 평균은 그 흔들림을 줄여 줘요.
  • 모든 자료가 한 번씩은 점검 역할을 맡으니 자료를 버리지 않고 다 쓰게 돼요.
  • 대신 학습을 조각 수만큼 되풀이해야 해서 시간과 계산이 몇 배로 들어요.
목차

1비유로 이해하기

볼링 대회에서 한 레인에만 서서 네 판을 치고 점수를 매기지는 않아요. 레인마다 기름이 발린 정도가 달라서, 잘 미끄러지는 레인을 뽑으면 실제보다 높은 점수가 나오고 뻑뻑한 레인에 걸리면 실력이 낮게 잡혀요. 그래서 한 판이 끝날 때마다 옆 레인으로 자리를 옮겨요. 네 레인을 한 바퀴 돌면 네 개의 점수가 남고, 그 넷을 평균 낸 값이 그날의 실력이 돼요. 어느 한 레인의 상태가 결과를 통째로 좌우하지 못하게 막는 방법이에요. 자료를 조각내 돌아가며 점검하는 교차 검증이 이 자리 옮기기예요.

2자세히 알아보기

조각을 하나씩 돌아가며 점검용으로 써요

가진 자료를 네 조각으로 똑같이 나눴다고 해 볼게요. 첫 회차에는 첫 조각을 옆에 빼 두고 나머지 세 조각으로 학습한 뒤, 빼 둔 조각으로 채점해요. 둘째 회차에는 첫 조각을 도로 넣고 둘째 조각을 빼요. 이렇게 네 회차를 돌면 모든 조각이 정확히 한 번씩 점검을 맡게 돼요.

회차마다 모델은 처음부터 새로 학습해요. 앞 회차에서 배운 것을 이어받으면 이미 본 자료가 점검용 조각에 흘러들어 점수가 부풀거든요. 회차가 끝날 때마다 점수를 적어 두고, 마지막에 네 점수를 평균 내요. 함께 계산한 흩어진 정도까지 보면 그 점수를 얼마나 믿을 수 있는지도 가늠할 수 있어요.

평균을 내야 하는 이유

자료를 한 번만 잘라 점검하면 그 몫에 무엇이 걸렸느냐가 점수를 크게 좌우해요. 유난히 쉬운 것들이 몰리면 점수가 실제보다 높게 나오고, 까다로운 것들이 몰리면 낮게 나와요. 자료가 적을수록 이 흔들림이 커져서, 나누는 방식만 바꿔도 점수가 몇 퍼센트씩 오르내려요.

이런 상태에서 두 모델을 견줘 어느 쪽이 낫다고 말하기는 어려워요. 점수 차이가 실력 차이인지 자를 때 붙은 운인지 구별이 안 되니까요. 여러 번 나눠 얻은 점수의 평균은 한 번의 운을 지워 줘요. 점수들이 얼마나 벌어졌는지도 함께 보면, 차이가 의미 있는지 아닌지 판단할 근거가 생겨요.

몇 조각으로 나눌까요

흔히 다섯 조각이나 열 조각으로 나눠요. 조각을 많이 낼수록 회차마다 학습에 쓰는 자료가 많아져서 실제 상황에 가까워지지만, 학습 횟수도 그만큼 늘어요. 자료가 아주 적을 때는 조각 수를 자료 개수만큼 늘려 한 건씩 빼며 점검하기도 해요. 가장 알뜰하지만 가장 오래 걸리는 방식이에요.

종류가 한쪽으로 치우친 자료라면 조각마다 종류 비율을 원래대로 맞춰서 나눠요. 이렇게 하지 않으면 어떤 조각에는 드문 종류가 하나도 안 들어가서 그 회차 점수가 무너져요. 날짜가 있는 자료는 순서를 지켜 앞 기간으로 배우고 뒤 기간으로 점검하도록 나눠야 해요. 뒤 기간으로 배워 앞을 맞히는 회차는 실제로는 일어날 수 없는 상황이니까요.

치러야 하는 값

교차 검증의 값은 시간이에요. 다섯 조각이면 학습을 다섯 번, 열 조각이면 열 번 되풀이해요. 몇 분이면 끝나는 작은 모델에서는 부담이 없지만, 한 번 학습에 며칠이 걸리는 큰 모델에서는 현실적으로 쓰기 어려워요. 그래서 큰 모델에서는 한 번만 떼어 둔 검증 데이터를 쓰고, 교차 검증은 자료가 적은 문제나 작은 모델에서 주로 써요.

설정을 고르는 데 교차 검증을 쓸 때도 마음을 놓으면 안 돼요. 같은 조각들로 후보를 수백 개 견주면 그 조각 나누기에 맞춰지게 돼요. 그래서 마지막 성능은 교차 검증에 한 번도 넣지 않은 자료로 따로 재는 것이 안전해요.

3조금 더 정확하게

교차 검증(Cross-Validation)은 데이터를 k개의 조각으로 나누고, 각 조각을 한 번씩 검증용으로 삼아 k번 학습·평가한 뒤 성능을 평균 내는 절차예요. K겹 교차 검증이라고 부르고, 조각마다 클래스 비율을 맞추면 층화 교차 검증, 조각 수를 데이터 개수만큼 늘리면 리브원아웃 교차 검증이 돼요. 얻는 것은 성능의 평균값과 함께 그 값이 얼마나 흔들리는지에 대한 정보예요.

비유가 어긋나는 지점도 있어요. 볼링은 같은 사람이 레인만 옮겨 다니지만, 교차 검증은 회차마다 아예 새 모델을 학습시켜요. 그래서 마지막에 남는 것은 완성된 모델 하나가 아니라 점수 하나예요. 실제로 쓸 모델은 이 점수로 설정을 정한 뒤 전체 자료로 다시 학습시켜 만들어요. 또 하나, 조각들이 서로 완전히 남남이어야 평균이 뜻을 갖는데, 같은 사람이나 같은 기기에서 나온 자료가 여러 조각에 흩어져 있으면 점수가 실제보다 높게 나와요.

4직접 해보기

5흔한 오해

  • 교차 검증을 하면 더 좋은 모델이 나온다고 생각하기 쉽지만, 실제로는 모델이 좋아지는 것이 아니라 성능을 재는 눈금이 정확해지는 거예요.

  • 교차 검증을 했으니 따로 테스트 자료가 필요 없다고 여기기 쉽지만, 실제로는 같은 나누기로 설정을 여러 번 고르면 그 나누기에도 맞춰져요.

  • 조각을 많이 낼수록 무조건 낫다고 믿기 쉽지만, 실제로는 학습 횟수가 그만큼 늘고 점검 몫이 너무 작아져 회차별 점수가 도리어 요동쳐요.

7한 줄 요약

그러니까교차 검증은 자리를 옮겨 가며 여러 판을 치고 평균을 내는 방법이고, 한 번의 운이 아니라 실력을 재려고 쓰는 방법이에요.

잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02