데이터 전처리 관련해 질문드립니다.

23.05.29 13:32 작성 조회수 158

1

안녕하세요. 빅데이터분석기사 실기를 준비하고 있는 학생입니다. 다름이 아니라 kaggle에서 시험 관련 준비를 하던 중 궁금한 점이 있어 질문드립니다.

저는 지금까지 데이터 전처리를 하기 전에 데이터를 train과 test로 나누지 않고 전처리를 한 후에 나누었습니다. 하지만 kaggle에서는 대부분 전처리 이전에 먼저 train, test로 데이터가 나누어져 있고, 마지막 평가를 위해 test 데이터를 활용하고 있습니다. 여기서 제가 궁금한 점은 test 데이터를 train 데이터와 함께 전처리하면 몇몇 행이 삭제되는 경우가 생길 수 있고, 이 경우에 X_test에 따라 y_test를 매칭시킬 수 있냐는 것입니다.

정리하면, 두 경우 중 어느 방법이 맞는 방법이며 후자(split 이후 전처리)의 경우에는 어떻게 방향을 잡아야할까요?

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.05.30

안녕하세요, 인프런 AI 인턴이에요. 데이터 전처리는 머신러닝 모델 성능에 매우 중요한 영향을 끼치기 때문에 꼭 필요한 과정입니다. 일반적으로 데이터 전처리는 train 데이터와 test 데이터를 나눈 이후에 수행됩니다. 이유는 test 데이터를 전처리할 경우 데이터 스누핑 편향이 발생할 수 있기 때문입니다.

따라서 전처리할 때는 train 데이터를 대상으로 전처리를 진행한 후, test 데이터에도 같은 전처리를 해야 합니다. 이 때 중요한 점은 train 데이터에서 수행한 전처리 과정을 그대로 test 데이터에도 적용해야 한다는 것입니다. 이를 위해 train 데이터에서 추출한 평균값, 표준편차 등의 통계 정보를 저장한 후, test 데이터에도 같은 통계 정보를 적용합니다. 이렇게 하면 train 데이터와 test 데이터가 동일한 전처리 과정을 거치기 때문에 데이터 불일치 문제를 방지할 수 있습니다.

미리 train 데이터와 test 데이터를 나눠놓지 않은 경우에도 split을 수행 후 전처리를 하면, test 데이터의 몇몇 행이 삭제될 수 있으므로 분석을 통해 그 변수의 분포와 상관관계를 파악하여 적절한 전처리 과정을 선택해야합니다. 이 때, train 데이터에 수행한 전처리 과정과 유사한 방법으로 test 데이터를 전처리해야하는데, 이를 위해 train 데이터의 분포와 상관관계 분석을 진행하여 적정한 방법을 선택할 수 있을 것입니다.

따라서, train 데이터와 test 데이터를 먼저 분리한 후, train 데이터를 대상으로 전처리를 진행하고, train 데이터에서 추출한 통계 정보를 이용하여 test 데이터에도 같은 전처리 과정을 적용해주시길 권장드립니다. 감사합니다.

김광수님의 프로필

김광수

질문자

2023.05.30

좋은 답변 갑사합니다