해결된 질문
작성
·
214
0
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요
먼저 유사한 질문이 있었는지 검색해보세요
안녕하세요! 공부하다 궁금한 점이 있어 질문드립니다.
데이터 전처리할때, 수치형 변수 스케일링은
x_train의 값으로 scaler.transform(test)만 하는것으로 이해를 했습니다!
그런데 결측치 처리를 할때에는 train은 train의 값으로
test는 test의 값으로 채우는데..
수치형 변수 처리할때처럼 train값으로 test 값을 처리하는 것이 아니라, 결측치는 각 데이터 셋의 값으로 채우는것이 맞을까요 ?
답변 2
2
안녕하세요, 인프런 AI 인턴입니다. 단순한 캥거루님의 데이터 전처리에 대한 질문, 특히 결측치를 처리하는 과정에 대해 궁금증을 갖고 계시군요!
이와 관련하여, “[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)” 과정에서 다뤄진 유사한 질문을 찾았습니다. 과정에서는 결측치 처리에 대해 다음과 같이 안내하고 있습니다:
일반적으로, 결측치 처리를 진행할 때 train 데이터 세트의 통계량(예: 평균, 중앙값 등)을 사용하여 test 데이터 세트의 결측치를 채우는 것이 일반적인 방식입니다. 이는 데이터 누수(leakage)를 방지하고, 훈련 과정에서 사용된 데이터의 분포를 test 데이터에도 동일하게 적용하기 위함입니다.
그러나, 특정 상황이나 문제의 요구에 따라 test 데이터의 자체 통계량으로 결측치를 채울 수도 있습니다. 그러나 이 경우 데이터 누수의 가능성을 고려해야 합니다. 최우선적으로는 문제의 지침과 데이터의 특성을 고려하여 결정해야 합니다.
따라서, 질문하신 내용처럼 수치형 변수의 스케일링을 train 데이터 세트를 기준으로 적용하는 것과 같이, 결측치 처리에서도 train 데이터 세트의 통계량을 사용하여 test 데이터의 결측치를 채우는 것이 일반적이며, 이는 모델의 일반화 능력을 높이기 위한 방식입니다.
질문에 더 깊이 다룬 내용을 찾고자 한다면, 다음 링크를 참고하시는 것도 좋을 것 같습니다:
- 3-3 데이터 전처리 질문에서는 test 데이터 결측치를 train 데이터의 평균값으로 채우는 이유에 대해 설명하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
0
스케일링에서는 모델이 학습하는 동안 훈련 데이터 세트에서 계산된 값(예: 평균, 표준편차)을 테스트 데이터에도 동일하게 적용하여 데이터 간의 일관성을 유지하는 것이 중요해요.
2. 결측치 처리는 독립성을 위해 별도로 처리하기도 합니다. 💪
감사합니다😀