분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
data leakage 관련 질문입니다.
'테스트 데이터(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)를 학습에 사용' 이 맞는지 질문 드립니다.
감사합니다.
헷갈리는 부분이였는데 상세하게 답변해주셔서 감사합니다!
헉... 제가 잘 모르고 test 데이터 내부에 있는 결측치의 데이터를 test 데이터의 결측치가 존재하는 변수의 평균으로 대치하여 분석하고 올렸는데,
제가 제출한 답안을 지울 수는 없는건가요..? ㅠㅠㅠ
삭제된 댓글입니다
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
직업정보제공사업 신고번호: J1204020250004
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io |
전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
안녕하세요 ssu통계학과님,
대회에 열정적으로 참여해주시고 계신점 진심으로 감사드립니다.
데이터 스케일링
1,2번 방법은 data leakage가 맞습니다.
모델이 펭귄의 몸무게를 예측할 때 오직 '한마리의 펭귄'만을 보고 예측하는 상황이라 생각하시면 됩니다.
때문에 학습데이터의 평균을 test데이터에 활용하는 3번은 data leakage에 해당하지 않으며 사용하셔도 됩니다.
결측치 대치
마찬가지로 2번 방법(test 데이터의 평균으로 대치)역시 같은 이유로 data leakage에 해당합니다.
감사합니다.
데이콘 드림.