인코딩 관련

여태까지 인코딩 할 때 train에만 있는 컬럼, test에만 있는 컬럼 고려하지 않고 사진처럼 바로 라벨인코딩을 했습니다. 최근에 업데이트된 영상을 보니 카테고리가 다를 때 혹은 포함할 때 등 이런 경우를 고려해서 적용하던데 원래 제 방식대로 해도 문제 없나요?
답변 2
0
안녕하세요, 인프런 AI 인턴입니다.
김대현님께서 인코딩 작업 시 train과 test 데이터셋 간의 컬럼 차이를 고려하지 않고 라벨 인코딩을 사용해도 문제가 없는지 문의하셨네요. 이와 관련된 몇 가지 중요한 내용을 공유드리겠습니다.
데이터셋 간 인코딩 차이 고려
일반적으로 라벨 인코딩이나 원핫 인코딩을 사용할 때 train과 test 데이터셋 간에 카테고리 차이가 발생할 수 있습니다. 여기서 몇 가지 주의사항이 있습니다:
라벨 인코딩:
- 라벨 인코딩은 범주형 변수를 정수로 직접 변환합니다. 이때 train 데이터에서 사용한 매핑을 반드시 test 데이터에도 동일하게 적용해야 합니다. 그렇지 않으면 train과 test 간에 인코딩된 값이 달라질 수 있습니다.
- 라벨 인코딩은 범주형 변수를 정수로 직접 변환합니다. 이때 train 데이터에서 사용한 매핑을 반드시 test 데이터에도 동일하게 적용해야 합니다. 그렇지 않으면 train과 test 간에 인코딩된 값이 달라질 수 있습니다.
원핫 인코딩:
- train이나 test에 특정 범주가 독립적으로 존재할 때 별도의 열이 추가되므로, 두 데이터셋 간 동일한 열 구조를 유지하기 위해 데이터 통합 후 인코딩하거나 데이터 분할 전 인코딩을 고려해봐야 합니다.
- train이나 test에 특정 범주가 독립적으로 존재할 때 별도의 열이 추가되므로, 두 데이터셋 간 동일한 열 구조를 유지하기 위해 데이터 통합 후 인코딩하거나 데이터 분할 전 인코딩을 고려해봐야 합니다.
데이터 합친 후 인코딩하는 방법
train과 test 데이터셋을 합친 후 인코딩을 진행하면, 모든 범주형 변수에 대해 동일한 인코딩이 이루어지므로, 테스트 과정에서의 오류를 최소화할 수 있습니다. 여기서는 각 데이터셋을 합친 뒤 전체 데이터를 인코딩하고, 다시 분할하는 방식으로 접근합니다.
아래 링크에서 유사한 문제에 대한 논의를 찾아볼 수 있습니다:
- 머신러닝 인코딩 관련 문의
결론
김대현님의 방식대로 진행하셨다 해도 특정 경우에서는 문제가 발생하지 않을 수 있지만, 위에서 설명드린 상황을 고려하여 진행하시는 것이 좋습니다. 특히, 데이터에서 드물게 나타나는 카테고리나 train/test에 만개할하는 특정 카테고리는 주의해야 합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
1유형 강의 다 나간 후 어떻게 할까요?
0
14
1
점수차가 많이 나는데 따로 하신게 있으신가요?
0
10
1
작업형1 모의문제 4번에 3)문제 질문
0
21
2
이상치 전처리 작업
0
25
2
평가결과값 문의
0
29
2
시계열 데이터 날짜와 시간 format
0
35
2
평가지표 F1 스코어 질문드립니다.
0
27
2
작업형 2 기출7회분에서
0
38
2
작업형2 모의문제1 (30강)
0
34
2
수강 기간 연장 문의 드립니다.
0
42
2
수강 계획과 관련해 문의 드립니다.
0
30
2
작업형1 - 연습문제 16~39 풀이는 몇강을 보면 되나요?
0
50
2
작업형 1 -연습문제 4-6
0
38
2
작업형 1 유형 부분
0
42
2
작업형 1 (삭제예정, 구 버전)
0
51
2
수강기간 연장 문의드립니다.
0
38
2
2유형 레이블 인코딩 VS 원핫 인코딩
0
37
3
수강기간 연장 문의드립니다.
0
44
2
인덱스 슬라이싱
0
37
2
질문 드립니다.
0
50
2
강의 내용 관련 질문드립니다~
0
46
2
수강 연장 문의
0
63
2
강의자료 일괄 다운로드
0
62
2
수강기간 연장 문의드립니다
0
48
2





