Inflearn brand logo image

인프런 커뮤니티 질문&답변

최수영님의 프로필 이미지
최수영

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

데이터 전처리1 (결측치, 이상치)

데이터 전처리1(결측치, 이상치)

해결된 질문

작성

·

51

0

결측치 제거할 때 test는 처리하면 안된다고 하셨는데 다음과 같은 상황들에서 어떻게 처리해야 하나요?

1)train, test 둘다 결측치 있는 경우 train만

train = train.dropna()하면 되는지

 

2) train은 없고 test만 결측치가 있는경우 둘다 안 하면 되는지

 

3) train만 있고 test는 결측치가 없는 경우 train만 처리하면 되는지

답변 2

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

우선 결측치가 있는경우 데이터를 (행/컬럼)삭제 또는 채움으로 처리가 필요합니다.

  1. train 삭제 또는 채움 처리, test데이터 채움 처리 필요 (또는 train과 함께 컬럼 삭제 가능)

  2. test데이터 채움 처리 필요 (또는 train과 함께 컬럼 삭제 가능)

  3. 네 맞습니다.

결측치가 있는 경우 머신러닝에서 에러가 나서 그렇습니다.

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 데이터만을 처리하면 됩니다. 학습 과정에서 결측치를 제거하거나 대체하여 모델의 성능을 높이는 방향으로 작업할 수 있습니다.

각 경우에 대해 추가적인 정보를 원하시면, 유사한 질문과 답변이 아래 게시물들에서 확인 가능합니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

최수영님의 프로필 이미지
최수영

작성한 질문수

질문하기