오늘 끝나면
훈련·검증·테스트 분할
- ✓훈련·검증·테스트 분할의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 훈련이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
정직하게 평가하려면 데이터를 나눠야 함 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
통계 · 26
훈련·검증·테스트
분할
배운 데이터로 다시 채점하면 점수가 부풀려짐.
그래서 데이터를 훈련·검증·테스트 셋으로 쪼갬.
테스트는 마지막에 딱 한 번 봄.
같은 데이터로 채점 = 반칙
모델을 학습시킨 그 데이터로 다시 성능을 재면, 점수가 진짜 실력보다 높게 나옴.
이유는 단순함. 모델이 그 데이터를 이미 봤음.
충분히 복잡한 모델은 답을 외워 버릴 수 있음 / 채점하면 거의 만점.
이건 시험 문제를 미리 보고 친 점수임 / 새 문제 실력은 모름.
우리가 알고 싶은 건 처음 보는 데이터에서의 성능임.
그걸 일반화 성능이라 함.
외운 데이터 점수는 거의 항상 일반화 성능보다 낙관적임.
이 부풀림을 낙관 편향이라 함.
막으려면 채점에 쓸 데이터를 학습에서 떼어 놔야 함.
모델이 이미 답을 봤음 → 거의 만점
훈련 점수 98%
실제 성능 74%
훈련 · 검증 · 테스트
답은 데이터를 미리 세 덩어리로 나누는 것임. 역할이 각각 다름.
훈련셋(train)은 모델이 파라미터를 학습하는 데 씀 / 직선의 기울기·절편을 여기서 맞춤.
검증셋(validation)은 모델을 고르고 튜닝하는 데 씀 / 차수·정규화 세기 같은 손잡이를 여기 점수로 비교함.
테스트셋(test)은 마지막에 최종 성능을 보고하는 데만 씀.
학습에도 안 쓰고, 튜닝에도 안 씀 / 끝까지 봉인함.
흔한 비율은 60·20·20 또는 70·15·15임 / 절대 법칙은 아님.
데이터가 많으면 테스트 몫을 줄여도 됨 / 적으면 다음 강의 교차검증을 씀.
같은 데이터 vs 분리 평가
낙관 편향을 눈으로 봄. 오른쪽에서 직접 해봄.
빈 사각형이 테스트셋임 / 모델이 학습 때 건드린 적 없는 데이터.
훈련 비율을 옮기고, 모델 복잡도(다항 차수)를 바꿔 보셈.
두 점수를 같이 띄움 / 둘 다 RMSE, 낮을수록 좋음.
훈련셋 RMSE는 모델이 본 데이터 점수 / 분리한 테스트 RMSE는 정직한 점수.
차수를 9까지 올려 보셈.
훈련 RMSE는 계속 내려가는데 테스트 RMSE는 어느 순간 다시 오름.
훈련 점수만 믿으면 더 복잡한 모델이 더 좋아 보임 / 그게 낙관 편향의 함정임.
테스트가 훈련보다 -0.019 높음. 차이가 작음 — 적당히 일반화됨. 차수를 9까지 올려 보셈.
테스트는 마지막에 한 번
테스트셋의 규칙은 하나임. 끝날 때까지 보지 않는 것임.
모델 고르기·튜닝은 전부 검증셋으로 함.
테스트셋은 모든 결정이 끝난 뒤, 최종 성능을 딱 한 번 재는 데만 씀.
왜냐면 테스트 점수를 보고 모델을 고치는 순간, 테스트셋이 사실상 튜닝 데이터가 됨.
여러 번 들여다보며 거기 맞춰 가면 / 테스트셋에 과적합이 일어남.
그럼 보고한 성능도 다시 낙관적으로 부풀려짐.
또 하나, 데이터 누수를 조심함.
분할 전에 전체로 정규화·결측 대치를 하면 테스트 정보가 훈련에 새어 듦.
스케일링 같은 전처리는 훈련셋에서만 학습해 / 검증·테스트엔 그 값을 적용함.
왜 검증과 테스트를 따로 두나? (펼치기)
검증셋도 반복해서 보고 모델을 고르다 보면 거기에 살짝 과적합됨.그래서 검증 점수도 약간 낙관적임 / 최종 보고용으로는 못 씀.
끝까지 건드리지 않은 테스트셋만이 진짜 처음 보는 데이터에 가까움.
그 점수가 가장 정직한 일반화 성능 추정치임.
테스트셋으로 최종 성능 측정
여기서 모델을 고치면 → 테스트셋에 과적합
정리 — 셋으로 나눠 정직하게
같은 데이터로 학습·평가하면 외운 걸 채점하는 부정행위임 / 점수가 부풀려짐.
그래서 훈련(학습)·검증(튜닝)·테스트(최종)로 나눔.
테스트셋은 끝까지 봉인했다가 마지막에 한 번만 봄.
분할 전에 전처리를 전체로 돌리면 데이터 누수가 생김 / 전처리는 훈련셋 기준으로만.
데이터가 적어 한 번 나누기 아까우면, 다음 강의 교차검증으로 넘어감.
Q. 테스트셋을 여러 번 보며 모델을 고치면?
정답은 테스트셋에 과적합돼 평가가 낙관적으로 부풀려짐임.테스트 점수를 보고 모델을 고치는 순간, 테스트셋은 사실상 튜닝 데이터가 됨.
거기에 맞춰 가면 보고한 성능이 실제 일반화 성능보다 높게 나옴.
그래서 테스트셋은 모든 결정이 끝난 뒤 딱 한 번만 봄.
| 셋 | 쓰임 |
|---|---|
| 훈련 train | 학습파라미터를 맞춤 · 본 데이터 |
| 검증 val | 튜닝모델·하이퍼 고름 · 반복 참조 |
| 테스트 test | 최종마지막 한 번 · 정직한 점수 |