SW중심대학 공동 AI 경진대회 ❮예선❯

SW중심대학 | 예선 | 심리성향 | AUC

  • moneyIcon 상금 : 총 0만원
  • 767명 마감

 

[인바디 팀] Private 35위 Extratree + Randomforest

공동작성자

stroke
2022.08.26 21:57 968 조회 language

Pycaret을 이용하였습니다. 모두들 고생많으셨습니다.

코드
로그인이 필요합니다
0 / 1000
asdfasdfasdfasdf
2022.09.02 17:41

concat_features = test

mask = concat_features.introelapse > (concat_features.introelapse.quantile(0.75) + 1.5 * (concat_features.introelapse.quantile(0.75) - concat_features.introelapse.quantile(0.25)))
concat_features.introelapse[mask] = concat_features.introelapse.quantile(0.75)

mask = concat_features.testelapse > (concat_features.testelapse.quantile(0.75) + 1.5 * (concat_features.testelapse.quantile(0.75) - concat_features.testelapse.quantile(0.25)))
concat_features.testelapse[mask] = concat_features.testelapse.quantile(0.75)

mask = concat_features.surveyelapse > (concat_features.surveyelapse.quantile(0.75) + 1.5 * (concat_features.surveyelapse.quantile(0.75) - concat_features.surveyelapse.quantile(0.25)))
concat_features.surveyelapse[mask] = concat_features.surveyelapse.quantile(0.75)

test = concat_features

위 부분에서 test 데이터의 이상치를 test 데이터의 통계(concat_features.introelapse.quantile 등)을 활용해 변환하는 것은 data leakage에 해당하는 것 같습니다.

GW
2023.08.26 18:24

삭제된 댓글입니다

일론머스크
2022.09.03 03:03

안녕하세요
해당 부분은 data leakage가 맞습니다.
테스트 데이터의 통계도 사용하면 안된다고 규정에 나와 있으며
공식적으로 .quantile 함수를 test 데이터에 적용하면 안된다고 문의 글에 적혀져 있습니다.

lastdefiance20
2022.09.04 17:49

quantile 함수를 test에 적용시킬 경우 test 데이터의 분포를 사용해 이상치를 제거하기 때문에 문제가 생기게 되는 것입니다. 

간단하게 test 데이터가 단 한개만 주어지게 된다면, 이 전처리 방식이 정상적으로 작동할까요? 

결국 test 데이터 분포에 의존적인 방식을 사용했기 때문에 input test data에 대해서 전처리 방식이 항상 달라지게 되어 data leakage 부분을 지키지 못한 코드입니다.

kyeongsoo
2022.09.04 20:19

test 데이터에 대한 정보가 훈련을 할 때에 영향을 끼칠 때만 data leakage라고 생각하여 실수를 한 것 같습니다.
좋은 지적 감사드립니다.