인프런 커뮤니티 질문&답변
train 과 test 데이터의 이상/결측치 처리 방법이 헷갈립니다.
작성
·
43
답변 3
0
그럼 정리하자면, 이게 맞을까요!
1. 결측치 : train, test 모두 처리해주어야 함 -> 안하면 에러발생
2. 컬럼수 : train, test가 동일해야 정상작동하므로 맞춰주어야 함
3. train에서 성능이 좋아지는 방향으로 결측치를 채우고, 동일한 방법으로 test도 채워준다. (다른 방법을 써도 되나, 성능이 좋아질지 나빠질지는 모르니 동일하게 사용)
0
머신러닝은 fit(학습)할 때 컬럼의 수와 이름이
predic(예측) 할 때 컬럼의 수와 이름이 같아야 정상작동합니다.
그래서 동일하게 전처리가 필요해요예를들어 train에는 중앙값, test에는 평균값을 채웠다면 성능이 더 좋아질지 떨어질지는 알수 없어요. train에서 중앙값보다 평균이 검증데이터 평가 지표로 성능이 좋아졌다면, test도 평균을 채우는 것입니다. (반드시는 아니에요! 해당 도메인 전문가라면 이유가 있을 수도 있어요)
이상치는 처리 안해도 에러는 발생하지 않지만, 결측치는 처리 안하면 에러 발생합니다.
0
안녕하세요, 인프런 AI 인턴입니다. bonanza9312님.
데이터 전처리 과정에서 train과 test 데이터의 결측치와 이상치에 대한 처리 방법은 모델의 성능과 평가 결과에 큰 영향을 미칠 수 있습니다. 질문 주신 내용을 바탕으로 자세한 설명을 드리겠습니다.
1) Train 데이터의 결측치 행 삭제
- 맞습니다. train 데이터에서는 학습에 영향을 줍니다. 데이터의 양이 충분하다고 가정할 때, 결측치가 많은 행을 제거하여 학습 데이터의 질을 높일 수 있습니다.
2) Train과 Test 데이터의 결측치 열 삭제
- train 데이터와 test 데이터에서 동일한 열을 삭제해야 하는 이유는 일관성을 유지하기 위해서입니다. 모델은 train 데이터에 대해 학습한 특성(열)을 바탕으로 test 데이터에 대해 예측을 수행합니다. 따라서 학습 시 사용된 특성과 일치하도록 test 데이터 역시 해당 열을 삭제해야 정확한 예측이 가능합니다.
3) 결측치를 채우는 방법의 일관성
- 결측치를 채울 때 동일한 방법을 사용하는 이유는 모델 학습과 평가 시 데이터의 일관성을 유지하고, train 데이터에 적용된 전처리 방법이 test 데이터에도 동일하게 적용되어야지만 올바른 평가가 이루어지기 때문입니다.
4) 결측치/이상치가 언급된 지침 없는 경우
- 지침이 없는 경우 특별한 처리 없이도 보통 데이터를 그대로 사용하는 것이 문제가 되지 않을 수 있습니다. 하지만, 관습적으로 기본적인 전처리를 적용하는 것이 일반적이며, 문제의 성격이나 데이터의 분포에 따라 판단해야 합니다.
관련된 기존 질문과 답변은 아래에서 참고하실 수 있습니다:
- 데이터 전처리(결측치 채울때 궁금한점): 데이터의 결측치를 처리하는 방법과 그 이유에 대해 설명하고 있습니다.
- 3-3 데이터 전처리 질문: 테스트 데이터에서 결측치를 처리하는 일반적인 방법에 대해 다루고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






1. 네! 맞아요. 동일한건 맞는데 예외는 있어요 train에서 행 삭제 했다고 test 행 삭제로 처리하면 절대 안됨
정확히 이해함
Good!!!
화이팅:)