Data Leakage in Machine Learning이란?

머신러닝의 데이터 누수(data leakage)는 대개 무해해 보이는 필드나 단계를 통해 들어옵니다. 이탈 예측 모델을 고객이 이미 해지한 뒤에야 채워지는 컬럼으로 학습시키는 경우가 있습니다. 사기 탐지 모델이 예측하려는 바로 그 조사 과정에서 설정되는 검토 플래그를 쓰기도 합니다. 전처리 단계에서 데이터를 나누기 전에 전체 데이터셋의 평균을 계산하면 테스트 행의 정보가 학습으로 새어 들어갑니다.

주요 원인은 다음과 같습니다.

  • 타깃 누수(target leakage): 결과가 나온 뒤에, 또는 결과 때문에 기록되는 피처
  • 학습·테스트 오염(train-test contamination): 같은 레코드나 거의 같은 사본이 분할 양쪽에 모두 들어간 경우
  • 분할 전에 전체 데이터로 적합한 전처리(스케일링, 결측값 대체 등)
  • 시간 누수(time leakage): 모델이 예측해야 할 기간 이후의 레코드로 학습한 경우

흔한 징후는 기대보다 좋은 결과가 나왔다가 모델이 새 데이터를 만나면 성능이 떨어지는 현상입니다.

데이터 누수는 과적합과 어떻게 다른가요?

  • 과적합은 모델이 학습 데이터에만 있는 패턴을 익혔다는 뜻입니다. 학습 점수와 테스트 점수의 차이로 드러납니다.
  • 누수는 테스트 결과가 더는 공정한 척도가 아니라는 뜻입니다. 정답이 데이터를 통해 모델에 전해졌기 때문에 학습 점수와 테스트 점수가 모두 좋아 보일 수 있습니다.
  • 과적합은 모델과 학습 방식을 조정하거나 더 다양한 학습 데이터로 해결합니다. 누수는 데이터, 피처, 준비 단계의 순서를 바로잡아 해결합니다.

AI 업무에서 데이터 누수는 어디서 문제를 일으키나요?

한 팀이 학습 세트의 두 버전을 비교했더니 준비한 버전의 점수가 훨씬 높게 나옵니다. 수치상으로는 분명히 올랐지만, 추가한 피처 중 하나가 결과가 나온 뒤에야 채워지는 필드에서 만들어졌습니다. 상승분 대부분은 실제 개선이 아니라 누수에서 나왔습니다.

누수가 없다고 확인하려면 준비 기록이 필요합니다. 어떤 필드를 썼는지, 그 필드가 언제 채워지는지, 학습으로 얻은 모든 변환을 학습 데이터만으로 적합했는지를 알아야 합니다. 같은 평가 세트로 전후를 비교하면 결과가 달라졌다는 사실은 보입니다. 왜 달라졌는지는 준비 기록이 있어야 확인할 수 있습니다. Data quality for AI는 업무별 맥락 없이는 규칙 기반 검사로 잡아내지 못할 수 있는 문제 중 하나로 누수를 꼽습니다.

자주 묻는 질문

머신러닝에서 데이터 누수의 예로는 무엇이 있나요?

고객이 해지한 뒤에야 채워지는 필드로 학습한 이탈 예측 모델이 대표적입니다. 모델은 그 필드에서 결과를 읽어 내는 법을 익혀 테스트에서는 좋은 점수를 받지만, 새 고객에게는 그 이점을 잃습니다.

데이터 누수는 어떻게 찾아내나요?

각 피처가 결과보다 언제 기록되는지 확인하고, 같은 레코드가 분할 양쪽에 들어갔는지 살피고, 전처리를 학습 데이터로만 적합했는지 점검합니다. 예상보다 지나치게 좋은 결과가 나오면 누수를 찾아볼 이유로 삼습니다.

데이터 누수는 데이터 유출과 같은 개념인가요?

아닙니다. 머신러닝에서 데이터 누수는 학습 중에 모델이 가져서는 안 되는 정보가 모델에 전해지는 현상입니다. 데이터 유출은 데이터가 손실되거나 변조되거나 승인 없이 접근·공개되는 보안 사고입니다. 보안팀이 이를 데이터 누수라고 부르기도 합니다.