[ML] Data Leakage

박경국·2022년 1월 17일
1

Machine Learning

목록 보기
12/16
post-thumbnail

1. Data Leakage가 발생하는 경우

  • 타겟변수 외에 예측 시점에 사용할 수 없는 데이터가 포함되어 학습이 이루어질 경우
  • 훈련데이터와 검증데이터를 완전히 분리하지 못했을 경우

  • Date Wrangling 과정에서 Merge를 할 때도 data leakage가 일어날 수 있습니다.
  • 학생의 수료 여부를 target으로 삼고 분류기를 만들 때, 중도포기 특성은 data leakage를 일으키는 특성이 됩니다. 중도포기를 하는 시점에 바로 미수료로 기록되기 때문입니다. 사실상 target과 같은 정보값을 갖습니다.
  • 하지만 중도포기 특성을 drop하고 merge를 진행해도 중도포기 특성을 drop하기 전과 점수의 차이가 크지 않은 걸 발견할 수 있는데요. merge 과정에서 중도포기를 유추할 수 있는 새로운 정보가 생기기 때문입니다.
  • 위 그림은 학생 등록 정보 table을 기준으로 학생 평가 결과를 left merge하는 그림입니다.
  • 학생 평가 결과 Table에 학생 C가 없는 걸 볼 수 있습니다. 평가 결과에 학생 C가 없는 이유는 학생 C가 수업 CC를 중도포기 했기 때문입니다.
  • 위 상태로 그냥 merge를 하게 되면 학생 C의 점수가 결측치로 기록됩니다. 그리고 모델은 이 결측치로 학생 C의 수료여부를 학습하게 됩니다. 이 결측치가 사실상 중도포기와 같은 기능을 합니다.
  • 이 문제를 해결하기 위해서는 중도포기를 한 학생 data를 삭제하거나, 점수 특성을 사용하지 않는 등의 방법이 있습니다. 하지만 중도포기를 한 학생의 데이터가 또 어디서 leakage를 일으킬지 알기 어렵기 때문에 데이터의 양이 충분하다면 중도포기자를 drop하는 것이 속이 편할 수도 있습니다.

0개의 댓글