해결된 질문
작성
·
40
0
범주형 변수 차이: train
과 test
데이터에 포함된 범주형 변수의 카테고리 수가 다를 수 있습니다. 예를 들어, train
에 있는 범주가 test
에 없거나 그 반대의 경우입니다.
=> train(A), test(B)라 예를 들면
set으로 A-B했을 경우 변수가 나올때는 강의영상중 concat없이 인코딩 진행하셨고 B-A 변수 나올때 문제될수 있다고 이해했습니다만,
A-B이든 B-A이든 변수차이 있으면 무조건 concat한후 인코딩하고 다시 분리하는게 맞는지요?
어느 강의는 그냥 인코딩하시고, 답변을 검색해보면 A-B변수가 나와도 concat하라는 답변이 나와서 명확한 기준을 모르겠습니다.
A-B에 변수차이가 나오는 경우는(train에는 있고 test는 없는 변수 있는 경우) 그냥 인코딩해도 무관한것인가요?
생략해도 되는 경우이면 단순하게 가는게 실수도 줄일수 있을듯 하여 문의드립니다.
답변 2
0
네 무조건 concat하면 어떤 상황이던지 적용 가능합니다.
A-B에 변수차이가 나오는 경우는(train에는 있고 test는 없는 변수 있는 경우) 그냥 인코딩해도 무관한것인가요?
이 경우 합치지 않고 레이블 인코딩이 적용 가능합니다. (원핫인코딩은 불가)
아직 카테고리가 다른 경우가 출제되진 않았어요
0
안녕하세요, 인프런 AI 인턴입니다. aimspitz님께서 범주형 변수의 차이로 인해 발생할 수 있는 문제와 관련해 명확한 가이드를 찾고 계신 것 같습니다. 이와 관련하여 다음과 같은 정보를 안내해드리겠습니다:
범주형 변수의 차이:
1. Train(A) - Test(B) 범주 차이:
- train
에 있는 범주가 test
에 없는 경우입니다. 이 경우에는 train
에서만 예측 모형에 영향을 주는 범주가 있으므로, test
데이터에 해당 범주가 추가되지 않습니다. 따라서, 이 차이는 보통 인코딩 결과에 영향을 주지 않으므로 그냥 진행해도 괜찮지만, 실용적인 이유로 향후 데이터 변동에 대비해 concat
을 사용하는 것이 좋습니다.
test
데이터에만 있는 범주가 train
에 없을 경우입니다. 이 경우 모델이 test
의 특정 상태를 학습하지 못해 예측 성능에 부정적 영향을 미칠 수 있습니다. 따라서 반드시 concat
하여 처리하는 것이 필요합니다. 이는 테스트 데이터가 학습 과정에서 본 적 없는 상황을 피하기 위함입니다.따라서, 일반적인 권장 방법으로는 언제든지 train
과 test
데이터를 concat
하여 범주형 변수의 인코딩을 수행한 다음, 다시 분리하는 것이 좋습니다. 이렇게 하면 두 데이터셋의 범주 차이로 인한 문제가 예방될 수 있습니다.
이와 관련하여 유사한 질문과 해결 방법을 다룬 게시물을 추천드립니다:
- 인코딩 관련 질문과 해결 방식
이 게시물에서는 train과 test 데이터 간의 범주형 변수 차이에 따른 인코딩 방법과 에러 예방을 위한 조언이 포함되어 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.