교차 검증

데이터로부터의 추론, 추정, 의사결정

훈련 오차로는 모델을 판단할 수 없습니다. 모델이 이미 그 데이터를 본 적이 있으니 그냥 외워 버리는 식으로 속일 수 있기 때문입니다. 필요한 것은 모델이 한 번도 본 적 없는 데이터에 대한 오차입니다. 그렇다고 테스트 세트 하나만 떼어 두면 데이터를 낭비하게 되고 추정도 잡음이 많아집니다. 교차 검증이 이 두 문제를 한꺼번에 해결합니다.

k-겹 교차 검증에서는 데이터를 같은 크기의 k개 겹으로 나눕니다. 그중 k−1개로 훈련하고 떼어 둔 하나로 검증하는데, 모든 겹이 정확히 한 번씩 검증 세트가 되도록 차례를 돌립니다. 그렇게 얻은 k개의 검증 오차를 평균하면 모델이 얼마나 잘 일반화하는지에 대한 안정적인 추정을 얻습니다.

교차 검증은 실제 시험 점수를 예측하기 위해 여러 번의 모의고사를 치르는 것과 같습니다. 만약 이미 답을 암기한 문제로만 스스로를 채점한다면 엄청나게 과대평가하게 될 것이므로, 매번 새로운 문제 묶음을 따로 떼어놓고 그것들로 점수를 매긴 뒤, 어느 묶음을 보류할지 교대합니다. 모든 모의고사 연습에서의 점수들을 평균 내는 것은 단 한 번의 모의고사가 할 수 있는 것보다 당일에 당신이 얼마나 잘할지에 대한 훨씬 더 안정적인 예측을 제공합니다.

머신러닝에서의 위치교차 검증은 ML 실무자가 스스로를 속이지 않으면서 모델과 하이퍼파라미터를 고르는 방법입니다. 데이터를 효율적으로 모두 활용해 일반화 오차(편향-분산 분해가 다루는 바로 그 양)를 추정하지요. 또한 데이터 누출에 맞서는 최전선이기도 합니다. 데이터 누출이란 테스트 분포의 정보가 훈련에 슬그머니 끼어들어, 아름답지만 완전히 가짜인 검증 점수를 만들어 내는 조용한 버그입니다.
▶ 교차 검증
← 편향-분산 분해평가 메트릭 →