학습 검증 테스트 데이터의 역할
학습 검증 테스트 데이터가 허용하는 결정과 금지하는 재사용을 구분하고 조직의 데이터셋 분할 원칙을 작성할 수 있다.
데이터를 세 묶음으로 나누는 이유는 숫자를 예쁘게 배분하기 위해서가 아니다. 모델을 만드는 결정, 후보를 고르는 결정, 완성된 절차를 평가하는 결정을 서로 다른 증거에 맡기기 위해서다. 학습 데이터(Training Set)는 모델의 파라미터를 학습하는 데 쓰고, 검증 데이터(Validation Set)는 하이퍼파라미터와 특징, 임계값, 조기 종료 같은 개발 선택을 비교하는 데 쓴다. 테스트 데이터(Test Set)는 이 선택을 모두 고정한 뒤 새로운 데이터에서 얼마나 일반화하는지 마지막으로 추정하는 독립 평가 자료다. [S1][S2]
세 데이터셋은 양이 아니라 권한으로 구분한다
학습 데이터에서는 손실 함수를 줄이도록 모델의 가중치나 규칙을 맞춘다. 검증 데이터에서는 학습률, 모델 구조, 특징 조합, 정규화 강도, 의사결정 임계값과 조기 종료 시점을 고른다. 테스트 데이터에서는 앞선 선택을 바꾸지 않은 상태로 정해 둔 지표를 계산한다. 따라서 같은 파일을 서로 다른 폴더에 복사해도 역할이 분리되지 않는다. 어떤 데이터로 어떤 결정을 내릴 수 있는지 접근 권한과 실행 규칙까지 나뉘어야 한다.
일반화(Generalization)는 학습에 직접 쓰지 않은 새로운 사례에서도 의도한 성능을 내는 능력이다. Google의 공식 학습 자료는 테스트 세트를 보지 못한 데이터에 대한 최종 확인에 사용하고, 검증 세트는 학습 과정의 초기 평가와 반복 조정에 사용하라고 설명한다. [S1] NIST AI RMF는 테스트 세트와 지표, 평가 도구를 문서화하고 배포 환경과 유사한 조건에서 성능을 측정하도록 제시한다. [S3] 테스트 데이터는 남겨 둔 잔여분이 아니라 실제 사용 환경을 대표하도록 설계한 평가 증거여야 한다.
훈련은 모델을 만들고 검증은 개발 선택을 고르며 테스트는 고정된 절차의 일반화 성능을 추정한다.
테스트를 보며 고치면 테스트는 검증이 된다
테스트 점수를 보고 특징을 추가하거나 모델을 바꾸고 다시 테스트하면 그 점수가 개발 과정에 들어온다. 라벨을 직접 보지 않았더라도 점수와 오류 사례가 다음 선택에 영향을 주기 때문에 독립성은 약해진다. Google은 검증 세트와 테스트 세트도 반복 사용하면 닳을 수 있다고 설명한다. [S1] 적응적 분석 연구도 같은 홀드아웃 결과를 보며 질문을 바꾸는 과정이 통계적 유효성을 해칠 수 있음을 다룬다. [S7] 실무에서는 테스트 접근 횟수와 공개 범위를 제한하고, 결과를 본 뒤 변경이 필요하면 그 세트를 검증용으로 재분류하거나 새로운 최종 평가 자료를 확보해야 한다.
모델 선택 자체도 과적합될 수 있다. Cawley와 Talbot은 유한한 데이터에서 성능 추정치의 분산 때문에 모델 선택 기준에 과적합이 생기고, 이후 성능 평가가 낙관적으로 치우칠 수 있음을 보였다. [S4] 중요한 판단은 최고 검증 점수 하나가 아니라 후보 탐색 횟수, 점수 변동, 하위집단 결과와 선택 규칙을 함께 기록하는 것이다. 테스트 결과가 기준을 넘지 못했다고 같은 테스트에 맞춰 계속 튜닝하면 실패를 학습한 셈이 된다.
테스트 세트의 독립성은 한 번도 열지 않았다는 말보다 그 결과가 개발 선택에 사용되지 않았다는 기록으로 증명한다.
70 15 15는 법칙이 아니다
분할 비율에는 모든 문제에 맞는 정답이 없다. Google 자료도 학습 데이터가 보통 더 크지만 세 데이터셋의 필수 비율은 없고, 테스트 세트는 통계적으로 의미 있는 평가가 가능할 만큼 커야 한다고 설명한다. [S1] 희귀 오류, 매장별 편차, 계절 변화처럼 반드시 확인할 조건이 많으면 테스트 규모는 전체 비율보다 필요한 사례 수와 신뢰구간, 오류 비용에서 역산해야 한다. 데이터가 많아도 실제 운영 범위를 대표하지 못하면 큰 테스트 세트가 좋은 증거가 되지는 않는다. [S6][S8]
데이터가 적을 때는 고정 검증 세트 대신 교차검증(Cross Validation)을 학습 영역 안에서 사용할 수 있다. 학습 데이터를 여러 fold로 나누어 번갈아 학습과 검증을 수행하면 한 번의 우연한 분할에 덜 의존한다. 다만 최종 테스트 세트는 여전히 별도로 남긴다. [S2] 후보 선택과 성능 추정을 같은 교차검증 점수로 처리하면 낙관 편향이 생길 수 있어, 작은 데이터에서 엄격한 비교가 필요하면 안쪽 반복은 선택에, 바깥 반복은 평가에 쓰는 중첩 교차검증을 고려한다. [S10] 계산 비용과 데이터 구조를 함께 판단해야 한다.
비율을 먼저 고르지 말고 평가해야 할 조건과 허용 오차를 정한 뒤 각 역할에 필요한 사례 수를 계산한다.
분할은 전처리보다 먼저 고정한다
평균과 표준편차, 결측 대치값, 범주 사전, 특징 선택, 중복 제거 임계값처럼 데이터에서 학습되는 전처리 규칙은 학습 데이터로만 맞춘 뒤 검증과 테스트에 적용해야 한다. 전체 데이터에서 먼저 규칙을 계산하면 테스트 정보가 모델 입력 단계로 스며든다. scikit-learn은 전처리 전에 학습과 테스트를 먼저 분리하고 Pipeline으로 각 fold 안에서 변환을 학습하도록 권고한다. [S5] 중복 레코드나 같은 고객, 상품, 사건의 파생 행이 경계를 넘는지도 별도로 검사해야 한다. 자세한 시간과 그룹 분할은 22회차에서 다룬다.
운영 문서에는 split_id, 원본 스냅숏, 포함 제외 기준, 분할 단위, 기준 시점, 랜덤 시드 또는 시간 경계, 각 세트의 행과 엔터티 수, 주요 하위집단 분포, 중복 검사, 접근 역할, 허용된 결정, 공개 횟수와 지표를 남긴다. 18회차의 Run Manifest에 이 split manifest를 연결하면 어느 데이터 버전으로 어떤 후보를 선택하고 어떤 테스트로 승인했는지 재현할 수 있다. 조기 종료도 검증 곡선을 보고 결정하므로 검증 데이터 사용에 포함된다. [S9]
분할 파일보다 중요한 것은 원본 스냅숏과 경계 규칙과 허용된 사용을 함께 버전으로 고정하는 것이다.
다온커머스의 데이터셋 분할 원칙
가상 조직 다온커머스는 매장 상품별 14일 수요예측을 준비한다. 다음 기간과 수치는 교육용 가정이다. 최근 20개월의 주문 POS 프로모션 재고 데이터를 16개월 학습, 2개월 검증, 2개월 테스트 후보 구간으로 나누되, 실제 확정 경계는 예측 시점과 운영 주기를 검토해 정한다. 지아는 학습 데이터로 모델을 맞추고 검증 데이터에서 특징 창, 규제 강도와 발주 경고 임계값을 비교한다. 평균 오차뿐 아니라 매장과 상품군, 프로모션 여부, 품절 기간별 결과를 함께 본다.
후보와 평가 프로토콜이 고정된 뒤 서윤이 테스트 실행을 승인한다. 테스트 결과가 합의한 기준을 넘으면 그 결과와 split_id를 출시 증거로 보관한다. 넘지 못하면 오류 원인을 분석하되 같은 테스트 결과에 맞춘 후보를 계속 비교하지 않는다. 필요한 변경을 개발 계획으로 돌리고, 기존 테스트를 검증 자료로 전환할지 새 운영 기간을 수집해 다음 독립 테스트를 만들지 승인 기록으로 남긴다. 이 원칙은 데이터 손실을 막기 위한 형식이 아니라 성능 주장에 얼마만큼의 독립된 증거가 남아 있는지 보여 주는 통제다.
다온커머스의 테스트 세트는 마지막 점수표가 아니라 출시 판단과 성능 주장에 연결되는 잠긴 증거다.
데이터셋 분할 원칙
- 식별과 버전 split_id 원본 snapshot_id 스키마 라벨 버전과 생성 코드
- 경계 규칙 행 엔터티 시간 그룹 공간 단위와 포함 제외 기준
- 대표성과 규모 운영 조건 하위집단 희귀 오류 수와 평가 불확실성
- 허용된 결정 학습 검증 테스트별로 바꿀 수 있는 항목과 금지 행동
- 접근 통제 테스트 특징 라벨 점수 오류 사례의 열람자와 공개 횟수
- 검사와 승인 중복 누수 전처리 경계 품질 지표 승인자와 재평가 조건
마무리와 다음 회차
학습 검증 테스트 데이터는 같은 데이터의 크기 다른 조각이 아니라 서로 다른 결정을 맡은 증거다. 학습 세트는 모델을 만들고, 검증 세트는 개발 선택을 고르며, 테스트 세트는 선택을 고정한 뒤 일반화 성능을 추정한다. 경계를 지키려면 분할 규칙과 데이터 버전, 접근 권한, 반복 사용 횟수와 실패 뒤 행동까지 기록해야 한다. 다음 20회차에서는 이 평가 구조의 기준이 되는 좋은 정답 데이터를 만들기 위해 라벨 정의와 경계 사례, 판단 불가 상태를 어떻게 설계하는지 살펴본다.
다음 20회차 좋은 정답 데이터를 만드는 라벨링 설계 2026년 9월 23일
출처 및 읽을거리
확인일 2026-09-21 KST · 본문의 운영 설계는 실무 권고이며 다온커머스와 모든 수치는 교육용 가정이다.
- [S1] Google for Developers - Datasets Dividing the original dataset
확인일 2026-09-21 · 교육용 공식 문서이며 예시 비율은 보편 규칙이 아니고 실제 규모와 경계는 사용 목적과 데이터 구조에 맞게 검증해야 함 - [S2] scikit-learn - Cross validation evaluating estimator performance
확인일 2026-09-21 · 라이브러리 사용자 가이드의 일반 원칙이며 무작위 분할이 모든 시간 그룹 공간 의존 데이터에 적합하다는 뜻은 아님 - [S3] NIST AI Resource Center - AI RMF Core
확인일 2026-09-21 · 자발적 위험관리 프레임워크이며 특정 분할 비율이나 단일 구현 방식을 요구하는 법적 의무로 해석하지 않음 - [S4] Journal of Machine Learning Research - On Over fitting in Model Selection and Subsequent Selection Bias in Performance Evaluation
확인일 2026-09-21 · 교차검증 기반 모델 선택을 중심으로 한 연구이며 편향의 크기는 데이터 규모 모델 안정성 탐색 절차에 따라 달라짐 - [S5] scikit-learn - Common pitfalls and recommended practices
확인일 2026-09-21 · scikit-learn 구현 예시는 원칙을 설명하는 수단이며 다른 도구에서도 같은 경계 검사를 별도로 구현해야 함 - [S6] Google for Developers - Overfitting
확인일 2026-09-21 · 독립 동일분포와 정상성은 이해를 위한 기본 조건이며 실제 운영 데이터에서는 시간 변화 피드백 그룹 의존성을 따로 다뤄야 함 - [S7] IBM Research - The reusable holdout Preserving validity in adaptive data analysis
확인일 2026-09-21 · 재사용 홀드아웃의 이론적 방법을 모든 조직이 구현해야 한다는 뜻이 아니며 본문은 반복 열람 위험의 근거로만 사용함 - [S8] ISO - ISO IEC 5259 2 2024 Data quality measures
확인일 2026-09-21 · 유료 표준 전문이 아닌 공식 공개 개요만 확인했으며 세부 규범 요구를 인용하지 않음 - [S9] Google for Developers - Overfitting L2 regularization and early stopping
확인일 2026-09-21 · 조기 종료가 검증 데이터를 사용하는 대표 사례라는 점을 확인하기 위한 출처이며 항상 최적의 규제 방법이라는 권고는 아님 - [S10] scikit-learn - Nested versus non nested cross validation
확인일 2026-09-21 · Iris 예시는 원리 설명용이며 모든 프로젝트에서 중첩 교차검증이 비용 대비 최선이라는 뜻은 아님
'스페셜 브리핑 > AI-Ready Data' 카테고리의 다른 글
| 버전 관리 재현성 품질 모니터링 (0) | 2026.09.18 |
|---|---|
| 정제 중복 제거 엔터티 해소 실무 (0) | 2026.09.16 |
| 스키마 표준화 정규화와 엔터티 통합 (0) | 2026.09.14 |
| 원본을 지키고 다시 만드는 3계층 저장 설계 (0) | 2026.09.11 |
| 데이터를 믿게 만드는 메타데이터 출처 계보 설계 (0) | 2026.09.09 |