여행 상품 신청 여부 예측 AI 해커톤

알고리즘 | 정형 | 분류 | 여행 | Accuracy

  • moneyIcon 상금 : 인증서, 장학금, 스타벅스 기프티콘 등
  • 611명 마감

 

[private: 14위] 0.925 catboost

2022.09.03 17:22 831 조회 language

참가의 의의를 두고 했습니다.부족한 내용이지만 참고하시면 좋을 것 같습니다.
모델은 catboost 파라미터 튜닝은 optuna를 사용했습니다.

코드
로그인이 필요합니다
0 / 1000
Mather
2022.09.03 21:13

수고하셨습니다.

파이썬짱
2022.09.06 23:43

많이 부족한 내용이네요 ^^

hdhdhdh
2022.09.07 10:25

영업기밀 좀 나눠요  파이썬짱님 ^^

강북진지
2022.12.09 14:21

삭제된 댓글입니다

kisooofficial
2022.09.07 01:00

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에 해당됩니다.

강북진지
2022.09.07 09:56

말씀해주신 내용 감사합니다.하지만 해당 코드는 데이콘 측에서 공유한  basic에 있는 타이타닉 연습에서 베이스라인과 비슷한 맥락으로 코드를 작성하였습니다. test_set에 결측을 훈련이 아닌 test_set 본인의 결측 해결을 위해 사용한 것이 부정인지는 의문입니다.혹시 몰라 링크는 남겨놓습니다.
https://dacon.io/competitions/open/235539/codeshare/4157?page=1&dtype=recent

kisooofficial
2022.09.07 11:02

- label encoding, one-hot encoding 시 test 데이터 셋 활용
- data scaling 적용 시 test 데이터 셋 활용
- test 데이터 셋의 결측치 처리 시 test 데이터 셋의 통계 값 활용
- 위 예시 외에도 test 데이터 셋이 모델 학습에 활용되는 경우에 Data leakage에 해당

위 4가지가 data leakage에 해당하는 코드입니다. 링크를 남겨주신 베이스라인은, train 데이터에서 male을 0으로 female을 1로 했기 때문에, test도 동일하게 0, 1로 바꿔준거라서 data leakage에 해당하지는 않습니다. 명목형 변수를 라벨인코딩할 때 train에서 했던 걸 기준으로 test에 동일하게 적용하는 것은 leakage가 아니지만, 결측치를 처리할 때 test_set의 통계량을 조금이라도 이용하는 것은 data leakage에 해당합니다. 

test_set['Age'].fillna(train_set.groupby('Designation')['Age'].transform('mean'), inplace=True)이 맞습니다