작성
·
15
0
안녕하세요,
작업형2 모의문제 2번 (에어비앤비) 풀면서 궁금한 점이 있어 문의 남깁니다!
train, test를 보면 last_review, reviews_per_month 컬럼에 결측이 있는데, 값을 대체하는 것보다 날리는 게 낫다고 생각해서 결측행을 삭제하고 모델을 학습했습니다.
문제는, train과 test 작업을 일치하려고 test 에서도 행을 삭제하니,
맨 마지막에 y_test 데이터를 불러올 때 예측이 안되는 문제가 생겼습니다..
QA 찾아보던 중 아래와 같이 답변해주신 내용을 봤는데요,
빅분기 실기 시험에서 결측행 삭제를 하게 되면 test에는 어떻게 적용해야 할까요? train에만 삭제하고 test는 그대로 둔 채로 모델 학습하고 결과를 뽑아야 할까요?
아니면, 채점을 고려해서 결측행 삭제는 안 하는 게 좋은 걸까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
김지원님, 작업형2 문제에 대한 고민이 있으시군요. 결측치를 처리할 때는 보통 학습 데이터와 테스트 데이터를 일관되게 다루는 것이 중요합니다.
결측행을 삭제하는 경우, train과 test 데이터의 구조상이 달라지면서 예측 과정에서 문제가 발생할 수 있습니다. 특히, test 데이터 셋은 제출할 때 예측 값의 개수가 미리 정해져 있기 때문에, 행을 삭제하면 제출 형식에 맞지 않게 됩니다.
일반적으로는 train 데이터에서 결측치를 대체하거나 적절히 처리한 후, 동일한 방법으로 test 데이터의 결측치도 처리하는 것이 좋습니다. test 데이터에서도 결측치를 삭제하지 않고 대체하는 방법(fillna
같은)을 사용하는 것이 보통 안전합니다.
채점을 고려할 때는, 결측치 삭제보다는 대체를 통해 모델을 학습시키고 예측 결과를 도출하는 방법이 더 적절할 것 같습니다. 특히 실습 시험에서는 주어진 데이터에 대한 예측 결과가 특정 형식과 개수에 맞아야 하기 때문에, 결측치 처리를 일관되게 수행하는 것이 중요합니다.
위 이미지와 관련된 설명이 도움이 되셨기를 바랍니다. 더 궁금한 점이 있으시면 언제든지 문의해 주세요.
이미지 출처: Inflearn