테스트 데이터 전처리 시 범주형, 수치형에 따른 차이가 있나요?

위와 같이 작성해주신 코드를 보는 중 의문이 생겨 질문 남깁니다!
train 데이터를 전처리할 때에는 train데이터의 최빈값, 중앙값, 평균으로 결측치를 대체하는데 반해,
test 데이터 전처리 시 범주형 데이터는 test 데이터의 최빈값으로 대체/ 수치형 데이터는 train 데이터의 평균, 중앙값으로 대체하고 있습니다.
왜 test 데이터 처리 시 train/test 데이터 모두 다 사용하나요? 일관성 있게 하나만 사용해서는 안되는지 궁금합니다.
답변 2
0
혼란을 드렸네요!
실수가 있었습니다. 일관성있게 사용하는 것이 맞으며
일반적으로는 train에서 나온 최빈, 중앙, 평균값으로 train과 test를 동일하게 채우게 됩니다.
응원합니다!!
0
안녕하세요, 인프런 AI 인턴입니다. 송예진님.
결측치를 처리할 때 train 데이터와 test 데이터를 각각 어떻게 다루는지에 대한 궁금증을 주셨군요. 이 과정은 데이터 전처리에서 매우 중요하며, 대부분의 데이터 분석과 머신러닝 작업에서 다르게 수행됩니다.
결측치 처리의 일반적인 방법
수치형 데이터:
- Train 데이터 통계 활용: 수치형 결측치는 평균이나 중앙값으로 채우는 경우가 흔합니다. 이 때, Train 데이터의 평균 또는 중앙값을 사용하여 Test 데이터의 결측치를 채웁니다. 이는 모델의 일반화 능력을 유지하고, Train 데이터로 학습된 통계적 정보를 Test 데이터에 일관성 있게 적용하기 위함입니다.
- Train 데이터 통계 활용: 수치형 결측치는 평균이나 중앙값으로 채우는 경우가 흔합니다. 이 때, Train 데이터의 평균 또는 중앙값을 사용하여 Test 데이터의 결측치를 채웁니다. 이는 모델의 일반화 능력을 유지하고, Train 데이터로 학습된 통계적 정보를 Test 데이터에 일관성 있게 적용하기 위함입니다.
명목형 데이터:
- 명목형 데이터는 최빈값(mode)으로 결측치를 채웁니다. 질문에서 주어진 코드처럼, Test 데이터를 자체의 최빈값으로 대체할 수도 있지만, 일반적으로는 Train 데이터의 최빈값을 사용합니다. 이는 모델이 Train 데이터의 분포를 테스트 데이터에서도 동일하게 적용할 수 있도록 하는 것이 목적입니다.
- 명목형 데이터는 최빈값(mode)으로 결측치를 채웁니다. 질문에서 주어진 코드처럼, Test 데이터를 자체의 최빈값으로 대체할 수도 있지만, 일반적으로는 Train 데이터의 최빈값을 사용합니다. 이는 모델이 Train 데이터의 분포를 테스트 데이터에서도 동일하게 적용할 수 있도록 하는 것이 목적입니다.
이러한 접근 방식은 데이터 누수(data leakage)를 방지하기 위한 것으로, 모델이 훈련되지 않은 정보를 사용하여 테스트 결과가 왜곡되는 것을 막습니다.
유의사항 및 추가 팁
- 특정 경우 Test 자체의 통계량을 사용할 수도 있지만, 이는 데이터셋의 특성 또는 특정한 요구사항에 따른 예외적인 경우일 수 있습니다.
- 일반적으로는 Train에서 얻은 통계치를 Test에 적용하는 것이 권장되며, 이는 데이터의 일관성과 테스트의 공정성을 유지하는 방법입니다.
관련된 보다 자세한 설명이 담긴 답변이 아래 링크에서 언급되어 있습니다:
- X_test 결측치 채울때, 오브젝트 vs 수치형 차이
- 데이터 전처리(결측치 채울때 궁금한점)
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
전처리 관련질문
0
6
2
작업형3 기출
0
6
1
유형2에서 데이터분할 생략 가능여부
0
7
1
9회 기출 유형3 질문
0
8
1
lgb 기초편
0
5
1
괄호 사용
0
9
1
작업형 2 데이터 전처리 질문
0
10
0
11회 기출 유형 작업형1 문제 3-1
0
9
0
예시문제 작업형2 (ver2023) 질문입니다
0
11
1
Data type에 따른 처리
0
8
1
데이터 전처리 관련
0
14
2
시험에서 문제 불러오기
0
12
2
2번문제 출력값 질문
0
17
2
pd.get_dummies()가 bool로 반환
0
16
2
대응표본검정 레빈
0
20
3
단일표본검정 문제 유형
0
22
2
[작업형 3] 6~7. 카이제곱 검정
0
18
2
9회 작업형3 문제 1-1
0
32
2
최종답안 계산 방식 질문
0
19
1
시험 치기 전 급하게 질문 사항
0
34
2
유형3
0
29
2
작업형 2 연습문제 섹션 3
0
20
2
11 기출문제 ipynb파일
0
33
2
작업형 3 유형
0
27
2





