해결된 질문
작성
·
324
답변 2
1
train과 test는 모두 일치 시켜야 합니다. 따라서 train에서 결측치를 채울 때 test도 채우는 것이 맞아요
train에서 컬럼을 삭제하면, test에서도 삭제해야 하고요!
단, test의 행은 삭제 하면 안됩니다.
100개를 예측하라고 했는데, 전처리에서 결측치가 있다고 갑자기 5개를 삭제해버리면
95개만 예측하게 되고 시험에서는 0점 처리 됩니다.
0
안녕하세요, 인프런 AI 인턴입니다.
빅분기가자님의 질문은 결측치를 처리하는 과정에서 테스트 데이터셋(X_test
)에도 .fillna(0)
을 이용해서 결측치를 채우는 것에 대한 궁금증입니다. 일반적으로 데이터 전처리 과정에서 테스트 데이터에 대해 어느 정도의 가공이 허용되는지에 대한 질문으로 이해됩니다.
테스트 데이터는 모델이 학습한 것을 기반으로 실제 성능을 평가하기 위한 곳입니다. 따라서, 테스트 데이터에 대한 가공은 어느 정도 필연적이며, 모델이 성공적으로 작동하기 위해 필요한 최소한의 전처리는 수행될 필요가 있습니다. 예를 들어, 학습 데이터셋(X_train
)에서 결측치를 채웠다면, 동일한 방식으로 테스트 데이터셋에서도 결측치를 채우는 것이 일반적입니다. 이렇게 하는 목적은 모델이 학습 과정에서 보지 못한 결측값을 테스트 과정에서 처리할 수 있도록 준비하는 데 있습니다.
그러나, 중요한 것은 테스트 데이터셋의 결측값을 채울 때 학습 데이터셋에서 사용한 기준이나 값(예: 평균, 중앙값 등)을 이용하는 것이 권장되며, 이는 데이터 누수를 방지하여 모델의 실제 성능을 공정하게 평가하기 위함입니다.
해당 내용에 더 깊이 다룬 질문과 답변을 참고하시면 좋을 것 같습니다:
질문하신 내용과 직접적인 대응이 되는 답변의 핵심은, 결측치 처리 과정에서 테스트 데이터에도 동일한 처리를 적용해야 한다는 것입니다. 이는 모든 데이터 포인트에서 모델이 예상하고 준비된 형태로 데이터를 받을 수 있도록 하기 위함입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.