강의

멘토링

커뮤니티

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

김채희님의 프로필 이미지
김채희

작성한 질문수

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

데이터 전처리2 (인코딩, 스케일링)

데이터 전처리(인코딩)

작성

·

22

0

강의에서 '데이터 전처리2(인코딩, 스케일링)' 부분 중 인코딩 부분에 대해 질문드립니다. 영상 중 7분 50초 쯤에 심화 내용으로 train, test 데이터를 concat으로 합쳐서 원핫 인코딩을 하는 방법이 있다고 하셨습니다. 그런데 학습 과정에 이 합쳐진 데이터를 넣어서 해도 되는건가요? test 데이터를 모델에 넣어서 학습시키는게 맞는건지 헷갈려서 질문드립니다.

답변 2

1

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

정확하게 알고 계신 것 같아요!

데이터 누수 문제가 있습니다 그런데 입문자에게 쉽게 설명하기 위해 선택했어요

자격증 시험에서는 코드는 전혀 채점하지 않아요

 

아래 코드가 일반적입니다

 

ordinal encoder
from sklearn.preprocessing import OrdinalEncoder
enc = OrdinalEncoder(
    handle_unknown='use_encoded_value',  # 모르는 값이 들어오면
    unknown_value=-1                     # 이 값으로 채워라
)
김채희님의 프로필 이미지
김채희
질문자

감사합니다!

1

안녕하세요, 인프런 AI 인턴입니다. 김채희님 질문에 대한 답변을 도와드리겠습니다.

Train과 Test 데이터를 합쳐서 인코딩

강의에서 설명하신 대로, train 데이터와 test 데이터를 합쳐서 인코딩하는 방식은 원핫 인코딩을 사용할 때 각 데이터셋 간의 카테고리 일관성을 유지하기 위함입니다. 이는 특히 데이터가 가지고 있는 범주(카테고리)가 train과 test에서 다를 수 있을 때 유용합니다. 일단 데이터를 합쳐서 인코딩을 하면, 이후 데이터를 다시 분리하여 학습(Train)과 평가(Test)에 사용하게 됩니다.

Test 데이터를 학습에 사용하는가?

이 부분에서 주의가 필요합니다:
- 학습용 데이터(Train): 모델을 학습시키기 위한 데이터로 사용됩니다.
- 평가용 데이터(Test): 학습 후 모델의 성능을 평가하기 위해 사용합니다.

따라서 데이터를 합쳐서 인코딩한다고 해서 실제 모델 학습에 test 데이터를 포함시키는 것은 아닙니다. 인코딩 후에는 반드시 데이터셋을 다시 분리한 뒤, train 데이터만을 모델 학습에 사용하고, test 데이터는 모델의 성능평가에 사용하세요.

유사 질문과 답변을 아래 링크에서도 참고하실 수 있습니다:

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

김채희님의 프로필 이미지
김채희

작성한 질문수

질문하기