분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
HD현대 AI Challenge
data leakage 관련 질문
train dataset에 없는 test dataset의 카테고리를 포함해 label encoder로 label을 생성하여 학습하는 것도 data leakage에 해당하나요?
감사합니다!
안녕하세요 마프님,
먼저 BrainAI_이희원님께서 답변주신 내용이 맞습니다.
해당 내용에 몇가지 더 추가하자면, 모든 Encoder는 Train data를 바탕으로만 fit 되어야하며 test dataset에만 존재하는 카테고리를 활용한다는 것은 'test dataset가 어떤 데이터가 들어올 지 사전에 알 수 있다' 라는 가정하에 가능한 방법이므로 Data Leakage에 해당합니다.
따라서 데이터 명세에 Class가 명시되어있지 않는 한 Train data에 있는 카테고리가 아닌 예외의 경우를 처리해야합니다.
이는 pd.get_dummies() 함수를 test 데이터셋에 적용하는 것도 Data Leakage에 해당하는 이유입니다.
감사합니다.
그러면 baseline 코드처럼 labelencoder를 traindata에 fit_transform하고 testdata는 transform만 하는 경우는 data leakage 경우가 아닌가요?
test dataset으로 fit하지 않았기 때문에, data leakage가 아닙니다.
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
대회 규칙 란에서 "일반적으로 Test Dataset은 '아예 볼 수 없다' 라고 가정하고 진행해야하며 코드 역시 이를 반영해야합니다."라고 기재되어 있습니다.
Test 데이터셋의 정보를 활용해 Label Encoding을 하는 것은 Data Leakage에 해당합니다.
다른 방법을 사용해 보시는 것이 좋을 것 같습니다.