Train-Test Split이란?

학습-테스트 분할(train-test split)은 모델 평가에서 가장 먼저 내리는 결정인 경우가 많으며, 어떻게 나누느냐에 따라 테스트 점수의 의미가 정해집니다. 데이터에 시간 순서가 있는데 무작위로 나누면, 일부 학습 레코드보다 앞선 시점의 레코드가 테스트에 들어갑니다. 한 고객이 양쪽에 모두 나타나면, 모델은 이미 본 사람으로 일부 테스트를 받는 셈입니다.

CUBIG의 UCI Polish Companies Bankruptcy 실험(2026년 10월)은 학습 레코드 7,768건과 평가 레코드 1,942건으로 기준 분할을 구성했고, 모든 전후 비교에서 같은 평가 레코드를 유지했습니다.

분할 전에 정해 둘 질문은 다음과 같습니다.

  • 데이터에 시간 순서가 있는지, 테스트를 학습 기간 이후로 두어야 하는지
  • 여러 레코드가 한 고객, 환자, 사업장, 기기에 속하는지, 이런 레코드를 한쪽에 모아 두어야 하는지
  • 중요한 결과가 드문지, 테스트 부분에 그 사례가 충분히 들어 있는지
  • 데이터에서 값을 학습하는 준비 단계는 무엇이며, 그 단계를 학습 부분에만 맞춰 적용하는지

학습-테스트 분할은 학습-검증-테스트 분할과 어떻게 다른가요?

  • 학습-테스트 분할은 학습용과 결과 측정용, 두 부분으로 나뉩니다.
  • 학습-검증-테스트 분할(train-validation-test split)은 설정을 조정하고 여러 버전 가운데 하나를 고르는 데 쓰는 검증 부분을 더합니다. 그래서 테스트 부분은 최종 측정 전까지 손대지 않은 상태로 남습니다. 용어의 쓰임은 평가 세트 항목에서 설명합니다.
  • 교차 검증은 하나의 검증 부분 대신 여러 검증 부분을 번갈아 사용합니다.

AI 업무에서 학습-테스트 분할은 어디서 문제가 되나요?

한 팀이 보험 청구 레코드를 무작위로 나누고 피처를 준비한 뒤 높은 테스트 점수를 보고합니다. 그런데 테스트 부분에는 상당수 학습 청구보다 나중에 접수된 청구가 들어 있고, 여러 필드는 전체 데이터셋의 통계로 스케일링되었습니다. 두 선택 모두 테스트의 정보가 학습으로 새어 들어가게 합니다. 그래서 이 점수는 다음 달 청구에서 모델이 낼 성능을 부풀렸을 가능성이 큽니다.

분할이 계속 쓸모 있으려면 모델이 실제로 쓰이는 방식을 반영해야 하고, 학습하는 모든 단계를 학습 부분에만 맞춰야 합니다. 데이터 누수에서 설명하는 원칙과 같습니다. UCI 실험 글도 자체 분할의 한계를 밝힙니다. 결과는 양성 평가 레코드 103건이 들어 있는 단일 분할에서 나왔고, 시간 기준 검증이 아니며, 현재 기업에 대한 성능 근거도 아닙니다.

자주 묻는 질문

학습-테스트 분할 비율은 어느 정도가 적당한가요?

70/30이나 80/20 분할이 흔히 쓰입니다. 적절한 비율은 데이터의 양과, 테스트 부분에 중요한 결과의 사례가 충분히 들어 있는지에 따라 달라집니다.

학습-테스트 분할은 무작위로 해야 하나요?

항상 그렇지는 않습니다. 시간 순서가 있는 데이터는 보통 시간 기준으로 나누고, 같은 고객이나 사업장의 레코드는 한쪽에 모아 둡니다. 그래야 테스트가 모델이 실제로 쓰이는 방식을 반영합니다.

테스트 세트를 튜닝에 쓰면 안 되는 이유는 무엇인가요?

테스트 결과를 보고 내린 선택 하나하나가 모델을 그 레코드에 조금씩 더 맞춥니다. 그러면 테스트는 독립적인 측정 수단 역할을 잃습니다. 튜닝에는 별도의 검증 세트나 교차 검증을 사용합니다.