데이터 전처리 순서 관련
3
4 asked
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요
먼저 유사한 질문이 있었는지 검색해보세요
안녕하세요. 강의 잘 듣고있습니다 !
작업형 2 전처리 순서 관련해서 질문드립니다.
타겟 데이터 분리, 검증 데이터 분리, 인코딩, 스케일링을 모두 해야 할 때 일반적으로 권장되는 순서가 따로 있는지 궁금합니다.
강의에서는타겟 분리 → 인코딩 → 검증 데이터 분리순서로 진행한 경우가 있었는데, 반대로타겟 분리 → 검증 데이터 분리 → 인코딩순서로 진행해도 되는지 궁금합니다.
또한 스케일링은 어느 단계에서 진행하는 것이 적절한지도 궁금합니다.
제가 이해하기로는 pd.get_dummies()는 검증 데이터 분리 전에 적용해도 되는 경우가 있는 반면, StandardScaler는 데이터 누수 방지를 위해 검증 데이터를 먼저 분리한 뒤 학습 데이터에만 fit하고, 검증 데이터에는 transform만 적용하는 것으로 알고 있습니다.
혹시
단계별로 순서를 바꿔도 되는 경우
반드시 지켜야 하는 순서
실기 시험에서 가장 안전하게 사용할 수 있는 전처리 순서
를 함께 설명해주시면 감사하겠습니다.
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다. 도비님.
전처리 순서는 시험 목적이라면 강의에서 사용하는 흐름을 따라도 되지만, 데이터 누수를 엄격히 방지하려면 검증 데이터를 먼저 분리한 뒤 학습 데이터 기준으로 전처리하는 것이 안전합니다.
일반적으로는 다음과 같이 정리할 수 있습니다.
타겟 데이터 분리
y = train.pop('target')학습 데이터와 검증 데이터 분리
X_train, X_val, y_train, y_val = train_test_split( train, y, test_size=0.2, random_state=42 )전처리
StandardScaler,MinMaxScaler등은X_train에만fit
X_val과 테스트 데이터에는transform만 적용
scaler.fit(X_train[num_cols]) X_train[num_cols] = scaler.transform(X_train[num_cols]) X_val[num_cols] = scaler.transform(X_val[num_cols])모델 학습 및 평가
테스트 데이터 예측 및 제출 파일 생성
StandardScaler처럼 평균, 표준편차 등의 통계값을 계산하는 전처리는 검증 데이터의 정보가 학습 과정에 섞이지 않도록 검증 데이터 분리 후 학습 데이터에만 fit하는 것이 원칙입니다.
반면 pd.get_dummies()는 단순히 범주형 데이터를 컬럼으로 변환하는 과정이므로 강의와 같이 검증 데이터 분리 전에 적용하는 경우도 있습니다. 다만 train과 validation 또는 train과 test의 범주형 값이 서로 다르면 컬럼이 달라질 수 있으므로, 인코딩 후 컬럼을 맞추거나 train과 test를 합쳐 인코딩하는 방식이 필요할 수 있습니다.
강의 답변에서도 시험에서는 전처리 및 스케일링을 검증 데이터 분리 전에 한 번에 진행해도 큰 의미의 차이는 없으며, 초보자라면 강의의 방식을 따라가는 것을 추천한다고 안내하고 있습니다.
관련 답변을 참고해 주세요.
스케일링 순서 궁금합니다
검증 데이터 분리 전후에 스케일링하는 차이와 시험에서의 권장 방식이 설명되어 있습니다.머신러닝 순서 질문 드립니다.
데이터 불러오기, EDA, 전처리, 검증 데이터 분리, 모델 학습 및 예측까지 전체적인 흐름을 확인할 수 있습니다.4회 작업형 2번 풀이 질문있습니다.
스케일링, 인코딩의 적용 여부와 작업형 2에서 사용할 수 있는 전반적인 풀이 흐름이 설명되어 있습니다.
정리하면 다음과 같습니다.
- 가장 원칙적인 순서: 타겟 분리 → 검증 데이터 분리 → 학습 데이터 기준 전처리
fit→ 검증/테스트 데이터transform
pd.get_dummies(): 검증 데이터 분리 전에 적용할 수도 있지만, 변환 후 컬럼을 맞춰야 함
- 스케일링: 데이터 누수 방지를 위해 학습 데이터에만
fit
- 실기 시험에서 가장 안전한 방법: 강의의 기본 템플릿을 우선 익히고, 스케일링을 사용하는 경우에는 학습 데이터에만
fit하는 방식으로 작성
- 랜덤포레스트와 같은 트리 계열 모델에서는 스케일링의 효과가 크지 않으므로, 시간이 부족하다면 인코딩과 결측치 처리 등 필수 전처리를 우선하는 것이 좋습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
작업형2 모의문제 데이터 불러오기
0
14
2
강의 연장 부탁드립니다!
0
14
1
수강기간 연장 문의드립니다!
0
36
1
2회 기출유형(작업형1) Warning
0
57
2
describe()
0
43
2
수강기간 연장 문의
0
71
2
빅데이터분석기사 실기 인코딩
0
63
2
수강기간 연장문의
0
67
2
수강 기간 연장 문의 드립니다.. 부탁드립니다 ㅠㅠ
0
54
2
작업형2와 3의 목적
0
40
1
기출9회(작업형 1의 2번문제)
0
41
2
수강 기간 연장 문의 드립니다.
0
59
2
수강 연장 문의드립니다
0
80
2
수강 연장 문의드립니다.
0
52
2
재결제 가능할까요...
0
61
1
비전공자 빅분기 실기 공부방법
1
71
2
강의일시정지 요청합니다
0
63
2
강의 연장 가능할까요 ㅠㅠ
0
60
2
수강 연장 문의드립니다.
0
66
2
수강기간 연장 가능 여부 문의드립니다.
0
83
1
수강 기간 연장 가능 여부 문의드립니다
0
85
2
강의 업데이트
0
83
2
수강 연장 문의드립니다.
0
102
2
강의 연장 문의
0
77
2

