인프런 커뮤니티 질문&답변
인코딩 관련
해결된 질문
작성
·
49
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다.
김대현님께서 인코딩 작업 시 train과 test 데이터셋 간의 컬럼 차이를 고려하지 않고 라벨 인코딩을 사용해도 문제가 없는지 문의하셨네요. 이와 관련된 몇 가지 중요한 내용을 공유드리겠습니다.
데이터셋 간 인코딩 차이 고려
일반적으로 라벨 인코딩이나 원핫 인코딩을 사용할 때 train과 test 데이터셋 간에 카테고리 차이가 발생할 수 있습니다. 여기서 몇 가지 주의사항이 있습니다:
라벨 인코딩:
- 라벨 인코딩은 범주형 변수를 정수로 직접 변환합니다. 이때 train 데이터에서 사용한 매핑을 반드시 test 데이터에도 동일하게 적용해야 합니다. 그렇지 않으면 train과 test 간에 인코딩된 값이 달라질 수 있습니다.
- 라벨 인코딩은 범주형 변수를 정수로 직접 변환합니다. 이때 train 데이터에서 사용한 매핑을 반드시 test 데이터에도 동일하게 적용해야 합니다. 그렇지 않으면 train과 test 간에 인코딩된 값이 달라질 수 있습니다.
원핫 인코딩:
- train이나 test에 특정 범주가 독립적으로 존재할 때 별도의 열이 추가되므로, 두 데이터셋 간 동일한 열 구조를 유지하기 위해 데이터 통합 후 인코딩하거나 데이터 분할 전 인코딩을 고려해봐야 합니다.
- train이나 test에 특정 범주가 독립적으로 존재할 때 별도의 열이 추가되므로, 두 데이터셋 간 동일한 열 구조를 유지하기 위해 데이터 통합 후 인코딩하거나 데이터 분할 전 인코딩을 고려해봐야 합니다.
데이터 합친 후 인코딩하는 방법
train과 test 데이터셋을 합친 후 인코딩을 진행하면, 모든 범주형 변수에 대해 동일한 인코딩이 이루어지므로, 테스트 과정에서의 오류를 최소화할 수 있습니다. 여기서는 각 데이터셋을 합친 뒤 전체 데이터를 인코딩하고, 다시 분할하는 방식으로 접근합니다.
아래 링크에서 유사한 문제에 대한 논의를 찾아볼 수 있습니다:
- 머신러닝 인코딩 관련 문의
결론
김대현님의 방식대로 진행하셨다 해도 특정 경우에서는 문제가 발생하지 않을 수 있지만, 위에서 설명드린 상황을 고려하여 진행하시는 것이 좋습니다. 특히, 데이터에서 드물게 나타나는 카테고리나 train/test에 만개할하는 특정 카테고리는 주의해야 합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






