분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
[private: 4위] 0.92954 코드 공유
코드공유를 처음 해봐서 미흡한 부분이 있을 수 있으나 너그러히 양해바랍니다 :)
Catboost와 optuna를 사용했습니다.
규정에는 test셋을 훈련에 사용하지 말라고 했습니다. 해당 데이터 내부 데이터만으로 결측치를 채운 행위는 부정행위와 관련 없다고 생각됩니다.
test 세트를 훈련에는 사용하지 않았습니다.
- label encoding, one-hot encoding 시 test 데이터 셋 활용
- data scaling 적용 시 test 데이터 셋 활용
- test 데이터 셋의 결측치 처리 시 test 데이터 셋의 통계 값 활용
- 위 예시 외에도 test 데이터 셋이 모델 학습에 활용되는 경우에 Data leakage에 해당
위 4가지가 데이콘에서 말한 기본적인 data leakage라서, 학습시키는 것이 아니라 전처리를 할 때도 사용하면 안됩니다!
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
train_set['Age'].fillna(train_set.groupby('Designation')['Age'].transform('mean'), inplace=True)
test_set['Age'].fillna(test_set.groupby('Designation')['Age'].transform('mean'), inplace=True)
여기서 test_set을 이용하여 결측치를 대체한 것은 data leakage에 해당하는 것 같습니다.