데이터 누수Data Leakage
채점용 정보가 학습 쪽으로 새어 드는 사고
- 데이터 누수는 따로 갈라 두었어야 할 정보가 학습 쪽으로 새어 들어간 사고예요.
- 겉으로 드러나는 증상은 하나예요. 점수가 이상하리만치 좋게 나와요. 그리고 실제로 쓰면 그 점수가 사라져요.
- 과적합과는 원인이 달라요. 과적합은 너무 많이 외운 것이고, 누수는 보면 안 될 것을 본 것이에요.
- 가장 흔한 통로는 순서예요. 가르기 전에 손질을 해 버리면 그 순간 정보가 넘어가요.
- 누수는 성능을 떨어뜨리지 않아요. 성능을 부풀려요. 그래서 알아채기가 훨씬 어려워요.
목차
1비유로 이해하기
새로 들인 난방기가 얼마나 따뜻한지 알아보려고 안방 문을 닫고 온도계를 놓아 뒀어요. 한 시간 뒤에 보니 온도계 숫자가 쭉쭉 올라가 있어요. 훌륭한 난방기를 샀구나 싶죠.
그런데 문틈이 손가락 하나쯤 벌어져 있었어요. 거실 보일러가 데운 공기가 그 틈으로 계속 흘러들었던 거예요. 온도계 숫자는 진짜였지만 그 숫자는 안방 난방기가 만든 게 아니었어요. 데이터 누수가 이 벌어진 문틈이에요.
문틈에 바람막이를 제대로 붙이고 다시 재면 숫자는 뚝 떨어져요. 실망스럽지만 그게 이 난방기의 실력이에요. 벌어진 틈을 모른 채로 좋은 물건이라고 믿었다면, 정작 추운 날에 낭패를 봤을 거예요.
2자세히 알아보기
새어 든 정보는 점수를 부풀려요
모델을 만들 때는 자료를 학습용과 채점용으로 갈라 둬요. 학습용으로 배우게 하고 채점용은 손대지 않은 채 마지막에 꺼내 실력을 재요. 채점용은 모델이 처음 보는 자료여야 점수에 뜻이 생기니까요.
그런데 채점용 자료가 조금이라도 학습 쪽으로 넘어가면, 모델은 답을 아는 상태로 채점을 받아요. 점수는 아주 좋게 나오고 사람들은 좋은 모델을 만들었다고 믿어요. 문제는 실제 상황에 내놓는 순간이에요. 그때는 넘어올 정보가 없으니 성능이 뚝 떨어져요.
이 실패가 무서운 이유는 방향이에요. 다른 문제들은 대개 점수를 떨어뜨려서 스스로를 알리는데, 누수는 점수를 올려서 자신을 감춰요. 결과가 지나치게 좋으면 기뻐하기 전에 문틈부터 살펴야 하는 이유예요.
어디에 틈이 생기나요
첫 번째 틈은 순서예요. 자료 전체를 놓고 빈칸을 평균값으로 채우거나 값의 범위를 맞춘 뒤에 학습용과 채점용을 가르면, 채점용 자료의 값이 이미 그 평균 안에 섞여 들어간 거예요. 손질은 가른 다음에, 학습용만 보고 정한 기준으로 해야 해요.
두 번째 틈은 같은 것이 양쪽에 들어가는 경우예요. 한 사람의 기록이 여러 줄로 흩어져 있는데 줄 단위로 갈라 버리면, 같은 사람이 학습용에도 채점용에도 있게 돼요. 같은 상품 사진을 각도만 바꿔 여러 장 찍은 경우도 마찬가지예요. 이럴 때는 사람 단위, 물건 단위로 묶어서 갈라야 해요.
세 번째 틈은 시간이에요. 앞일을 맞히는 문제인데 자료를 아무렇게나 섞어 가르면, 나중에 일어난 일을 배우고 그 앞의 일을 맞히는 꼴이 돼요. 시간이 걸린 문제는 반드시 어느 시점을 기준으로 앞뒤를 갈라야 해요.
정답이 딸려 들어온 칸
가장 알아채기 어려운 틈은 정답이 다른 이름으로 들어와 있는 칸이에요. 병에 걸렸는지 맞히는 문제에 "처방받은 약 이름" 칸이 들어 있다면, 모델은 병을 알아보는 대신 약 이름을 읽어요. 해지할 손님을 맞히는 문제에 "해지 처리 날짜"가 들어 있는 것도 같은 일이에요.
이런 칸은 사람이 보기에도 자연스럽게 생겼어요. 그래서 각 칸이 언제 만들어지는 값인지를 따져 봐야 해요. 맞히려는 순간보다 나중에 생기는 값이라면 실제로 쓸 때는 존재하지 않는 값이고, 학습에 넣어서는 안 돼요.
새는 곳을 찾는 방법
가장 좋은 신호는 지나치게 좋은 점수예요. 어려운 문제인데 거의 다 맞힌다면 축하하기 전에 의심해요. 한 칸을 빼면 점수가 뚝 떨어지는 칸이 있다면 그 칸이 새는 자리일 가능성이 커요.
자료를 다루는 순서를 하나의 흐름으로 묶어 두는 것도 도움이 돼요. 가르기, 손질, 학습, 채점을 사람 손으로 그때그때 하면 순서가 뒤엉키기 쉬워요. 순서를 고정해 두면 문틈이 생길 자리 자체가 줄어들어요.
3조금 더 정확하게
누수는 과적합과 자주 헷갈려요. 과적합은 학습용 자료를 지나치게 외워서 새 자료 앞에서 무너지는 일이고, 이때 채점 점수는 낮게 나와요. 누수는 채점 점수까지 높게 나오는 게 특징이에요. 채점용이 더 이상 새 자료가 아니게 되었기 때문이에요.
비유가 어긋나는 지점도 있어요. 문틈은 손으로 만져 보면 바람이 느껴지지만, 자료의 틈은 대부분 눈에 보이지 않아요. 여러 번 나눠 채점하는 방법을 쓰면 틈이 반복해서 나타나서 오히려 모든 판에서 점수가 고르게 좋아 보여요. 그래서 누수는 점수를 들여다보는 것보다 자료가 만들어진 과정을 되짚는 쪽으로 찾아요.
누수라는 이름이 두 가지 뜻으로 쓰이는 점도 알아 두면 좋아요. 하나는 지금까지 이야기한 채점용 정보가 넘어오는 경우이고, 다른 하나는 실제로 쓸 때는 손에 넣을 수 없는 정보가 학습에 들어간 경우예요. 앞의 것은 점수만 못 믿게 되지만, 뒤의 것은 모델 자체를 쓸 수 없게 만들어요.
4직접 해보기
5흔한 오해
누수가 있으면 성능이 나빠진다고 생각하기 쉽지만, 실제로는 성능이 좋아 보이게 만들기 때문에 오히려 발견이 늦어져요.
자료를 잘 섞어 가르면 누수는 없다고 여기기 쉽지만, 실제로는 잘 섞는 행동 자체가 시간 순서가 있는 문제에서는 누수를 만들어요.
누수는 채점용 자료를 실수로 학습에 넣었을 때만 생긴다고 생각하기 쉽지만, 실제로는 자료를 가르기 전에 한 손질과 나중에 생기는 값이 든 칸에서 훨씬 자주 생겨요.
7한 줄 요약
그러니까데이터 누수는 갈라 두었어야 할 정보가 학습 쪽으로 새어 든 사고이고, 점수를 부풀려 자신을 감추기 때문에 결과가 너무 좋을 때 가장 먼저 의심해야 해요.
잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02