인프런 커뮤니티 질문&답변
데이터 전처리1(결측치, 이상치)
해결된 질문
작성
·
70
답변 2
0
퇴근후딴짓
지식공유자
우선 결측치가 있는경우 데이터를 (행/컬럼)삭제 또는 채움으로 처리가 필요합니다.
- train 삭제 또는 채움 처리, test데이터 채움 처리 필요 (또는 train과 함께 컬럼 삭제 가능) 
- test데이터 채움 처리 필요 (또는 train과 함께 컬럼 삭제 가능) 
- 네 맞습니다. 
결측치가 있는 경우 머신러닝에서 에러가 나서 그렇습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 최수영님.
데이터 전처리 과정에서 결측치와 이상치 처리에 관한 질문을 해주셨군요. 결측치 처리 방법은 모델의 성능과 평가의 정확도에 큰 영향을 미칠 수 있기에 신중히 접근해야 하는 부분입니다. 아래에 상황별 처리를 정리하겠습니다.
1) Train과 Test 모두 결측치가 있는 경우
- train = train.dropna()와 같이 Train 데이터에서 결측치를 제거하는 것은 학습 데이터의 청결성을 높이기 위한 방법이 될 수 있습니다. 그러나, Test 데이터에서는 행을 삭제하면 안 됩니다. Test 데이터의 결측치는 학습 데이터를 기반으로 적절히 대체(impute)하는 방법을 추천드립니다. 예를 들어, Train 데이터에서 결측치를 제거한 후의 통계량(평균 또는 중앙값)을 이용해 Test 데이터의 결측치를 채울 수 있습니다.
 
2) Train에 결측치가 없고 Test에만 결측치가 있는 경우
- 이런 경우 Test 데이터의 결측치를 Train 데이터의 통계량을 기반으로 대체하는 것이 일반적입니다. 직접적으로 Train 데이터에 영향을 준 요소와 동일한 방식으로 Test 데이터의 결측치를 다루는 방식입니다.
 
3) Train에만 결측치가 있고 Test에는 없는 경우
- Train 데이터만을 처리하면 됩니다. 학습 과정에서 결측치를 제거하거나 대체하여 모델의 성능을 높이는 방향으로 작업할 수 있습니다.
 
각 경우에 대해 추가적인 정보를 원하시면, 유사한 질문과 답변이 아래 게시물들에서 확인 가능합니다:
- 데이터 전처리(결측치 채울때 궁금한점): 결측치 처리 방법의 기본 원칙에 대해 설명하고 있습니다.
 
- 3-3 데이터 전처리 질문: Test 데이터의 결측치를 Train 데이터의 통계량으로 채우는 일반적인 방법에 대해 다룹니다.
 
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






