스마트 공장 제품 품질 상태 분류 AI 오프라인 해커톤

채용 | 알고리즘 | 정형 | 스마트 공장 | LG Aimers | 분류 | Macro F1 Score

  • moneyIcon 상금 : 1,000만 원
  • 107명 마감
마감

 

Data Leakage 규칙 관련 상세 설명

2023.03.24 13:18 629 조회

안녕하세요, LG Aimers 오프라인 해커톤 진출자 여러분!

AI 해커톤(경진대회)을 진행하다 보면, 가장 빈번하게 실격되는 이유 중 하나가 바로 Data Leakage입니다.

이로 인한 불이익을 받는 일이 없도록, Data Leakage의 개념과 사례에 대해 소개해 드리고자 합니다.


Data Leakage(데이터 누수, 정보 누설)란

미래에 대한 전혀 알 수 없는 대한 정보가 모델 학습에서 사용된 경우를 말합니다.

즉 test 데이터가 모델의 학습에 이용된 경우입니다.

해커톤(경진대회) 특성 상, 리더보드 제출을 위해 추론에 사용될 test 데이터들이 사전에 주어지지만, 실제 모델을 서비스하는 환경에서는 test 데이터들이 어떠한 데이터들이 몇개가 입력으로 들어올 지 전혀 알 수 없습니다.

따라서 해커톤(경진대회) 역시, Test 데이터들을 '전혀 알 수 없고, 볼 수 없다' 라고 가정하고 진행해야합니다.


즉, Test 데이터들의 모든 정보는 모두 '미래'로 간주하여 모델의 학습에 관여, 활용 할 수 없습니다.


대표적인 Data Leakage에 해당하는 사례

  • Label Encoding 시 Test 데이터로부터 Encoder를 fit 시키는 경우
  • Scaler 사용 시 Test 데이터로부터 Scaler를 fit 시키는 경우
  • Test 데이터에 대한 결측치 보간 시 Test 데이터의 통계 정보(평균, 최빈값 등)를 사용하는 경우
  • 파생변수를 생성할 시 2개 이상의 Test 데이터들의 정보를 활용할 경우
  • Test 데이터들의 이동 평균을 활용하는 경우
  • Test 데이터들을 모델 학습에 활용하는 경우 (이번 해커톤에서는 Pseudo-Labeling도 허용하지 않습니다)
  • Test 데이터에 pandas의 get_dummies() 함수를 적용하는 경우
  • Test 데이터의 index 정보 혹은 row 개수 정보를 활용하는 경우
  • Test 데이터로부터 EDA를 진행한 결과(인사이트)를 전처리, 모델 학습에 적용하는 경우
  • 이 밖의 Test 데이터들의 정보를 모델 학습에 활용하는 모든 경우


대표적인 Data Leakage에 해당하지 않는 사례

  • 독립적인 샘플(행(row)) 내에서의 모든 연산 혹은 파생 변수 생성
  • 예를 들어, Test['C'] = Test['A'] + Test['B']와 같이 독립적인 샘플 내에서 A Column과 B Column을 더한 새로운 파생 변수 C Column을 생성하는 경우
  • Train 데이터의 통계 정보를 Test 데이터에 적용하여 전처리하는 경우 혹은 파생 변수를 생성하는 경우
  • Test 데이터의 결측치를 Train 데이터의 통계 정보를 바탕으로 보간하는 경우 등등


대회를 진행하면서 본인이 진행하는 방법이 Data Leakage에 해당하는지 햇갈리는 경우에는 꼭 사전에 현장에 있는 데이콘 관계자에게 문의 혹은 댓글로 문의하여 불이익을 받는 일이 없도록 부탁드리겠습니다.

데이콘은 앞으로도 투명하고 공정한 대회 운영을 위해 더욱 노력하겠습니다.

감사합니다.