펭귄 몸무게 예측 AI 해커톤

정형 | RMSE

  • moneyIcon 상금 : 참가시 최소 50 XP, 특별상 데이콘 후드
  • 864명 마감

 

data leakage 관련 질문입니다.

2021.12.28 00:34 1,341 조회

'테스트 데이터(test.csv)를 학습에 사용' 관련해서 데이터를 스케일링 할 때 질문입니다.


1. 데이터 스케일링 시 트레인 데이터와 테스트 데이터를 합쳐서 스케일링 한 것.

ex)

dat = pd.concat([train,test])

dat = scaler.fit_transform(dat)

2. 데이터 스케일링 시 트레인 데이터를 스케일링 함. 그 후 테스트 데이터는 테스트 데이터 내에서 스케일링함.

ex)

train = scaler.fit_transform(train)

test = scaler.fit_transform(test)


3. 데이터 스케일링 시 트레인 데이터를 스케일링 함. 그 후 테스트 데이터도 트레인 데이터로 스케일링한 것을 이용함.

ex)

train = scaler.fit_transform(train)

test = scaler.transform(test)


저는 1, 2번은 '테스트 데이터(test.csv)를 학습에 사용' 했다고 판단하고 3번 방법을 사용했습니다.


1, 2번 방법이 '테스트 데이터(test.csv)를 학습에 사용' 이 맞는지 질문 드립니다.



다음으로 결측치를 채우는 과정도 비슷한 맥락으로 질문 드립니다. 평균 대치 방법을 이용한다고 합시다.


1. 결측치를 train 데이터의 평균만을 이용해서 대치하는 경우

ex)

train.fillna(train.mean(), inplace = True)

test.fillna(train.mean(), inplace = True)


2. 결측치를 train 데이터는 train 평균을, test 데이터는 test 평균을 이용해서 대치하는 경우

ex)

train.fillna(train.mean(), inplace = True)

test.fillna(test.mean(), inplace = True)


1번 방법으로 전 진행했는데, 2번 방법은 '테스트 데이터(test.csv)를 학습에 사용' 이 맞는지 질문 드립니다.


감사합니다.

로그인이 필요합니다
0 / 1000
DACONIO
2021.12.28 09:18

안녕하세요 ssu통계학과님,

대회에 열정적으로 참여해주시고 계신점 진심으로 감사드립니다.

데이터 스케일링
1,2번 방법은 data leakage가 맞습니다.
모델이 펭귄의 몸무게를 예측할 때 오직 '한마리의 펭귄'만을 보고 예측하는 상황이라 생각하시면 됩니다.
때문에 학습데이터의 평균을 test데이터에 활용하는 3번은 data leakage에 해당하지 않으며 사용하셔도 됩니다.


결측치 대치
마찬가지로 2번 방법(test 데이터의 평균으로 대치)역시 같은 이유로 data leakage에 해당합니다.

감사합니다.
데이콘 드림.

ssu통계학과
2021.12.28 13:41

헷갈리는 부분이였는데 상세하게 답변해주셔서 감사합니다!

Steve_K
2021.12.28 15:44

헉... 제가 잘 모르고 test 데이터 내부에 있는 결측치의 데이터를 test 데이터의 결측치가 존재하는 변수의 평균으로 대치하여 분석하고 올렸는데,

제가 제출한 답안을 지울 수는 없는건가요..? ㅠㅠㅠ

Steve_K
2021.12.28 15:44

삭제된 댓글입니다