분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
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가 아닙니다.
DACON Co.,Ltd | CEO Kookjin Kim | 699-81-01021
Mail-order-sales Registration Number: 2021-서울영등포-1704
Business Providing Employment Information Number: J1204020250004
#901, Eunhaeng-ro 3, Yeongdeungpo-gu, Seoul 07237
E-mail dacon@dacon.io |
Tel. 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
대회 규칙 란에서 "일반적으로 Test Dataset은 '아예 볼 수 없다' 라고 가정하고 진행해야하며 코드 역시 이를 반영해야합니다."라고 기재되어 있습니다.
Test 데이터셋의 정보를 활용해 Label Encoding을 하는 것은 Data Leakage에 해당합니다.
다른 방법을 사용해 보시는 것이 좋을 것 같습니다.