HD현대 AI Challenge

data leakage 관련 질문

2023.10.04 14:27 1,716 Views

train dataset에 없는 test dataset의 카테고리를 포함해 label encoder로 label을 생성하여 학습하는 것도 data leakage에 해당하나요?

로그인이 필요합니다
0 / 1000
EISLab_이희원
2023.10.04 14:46

대회 규칙 란에서 "일반적으로 Test Dataset은 '아예 볼 수 없다' 라고 가정하고 진행해야하며 코드 역시 이를 반영해야합니다."라고 기재되어 있습니다.
Test 데이터셋의 정보를 활용해 Label Encoding을 하는 것은 Data Leakage에 해당합니다.
다른 방법을 사용해 보시는 것이 좋을 것 같습니다.

마프
2023.10.04 17:11

감사합니다!

DACON.GM
2023.10.04 15:47

안녕하세요 마프님,
먼저 BrainAI_이희원님께서 답변주신 내용이 맞습니다.
해당 내용에 몇가지 더 추가하자면, 모든 Encoder는 Train data를 바탕으로만 fit 되어야하며 test dataset에만 존재하는 카테고리를 활용한다는 것은 'test dataset가 어떤 데이터가 들어올 지 사전에 알 수 있다' 라는 가정하에 가능한 방법이므로 Data Leakage에 해당합니다.
따라서 데이터 명세에 Class가 명시되어있지 않는 한 Train data에 있는 카테고리가 아닌 예외의 경우를 처리해야합니다.
이는 pd.get_dummies() 함수를 test 데이터셋에 적용하는 것도 Data Leakage에 해당하는 이유입니다.
감사합니다.

박상일
2023.10.04 19:38

그러면 baseline 코드처럼 labelencoder를 traindata에 fit_transform하고 testdata는 transform만 하는 경우는 data leakage 경우가 아닌가요?

EISLab_이희원
2023.10.04 20:45

test dataset으로 fit하지 않았기 때문에, data leakage가 아닙니다.