인코딩 관련

여태까지 인코딩 할 때 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에 만개할하는 특정 카테고리는 주의해야 합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
뒤로가기 버튼 같은 것이 있나요?
0
28
1
강의 연장 문의
0
32
1
출력값 질문
0
31
2
수업노트가 어디에 있나요?
0
29
1
실기시험 제출관련
0
160
2
6.20 작업형 2 과적합
0
169
3
코딩팡 장업형2 베이스 라인 인코딩 종류 질문
0
52
2
로지스틱회귀, 회귀
0
52
2
회귀 문제를 풀때 질문입니다.
0
59
1
불균형 처리 후 성능이 더 낮아졌다면,
0
66
2
실기 체험 제2유형 에러 문의
0
66
1
LIGHTGBM 으로 하면 pred값이 소수점 6자리까지 나오는게 맞나요
0
52
2
3번문제 등분산 가정
0
50
2
작업형3 target 형 변환 질문
0
38
2
[작업형1] 연습문제 섹션1 ~ 10 의 section4
0
40
3
원핫인코딩과 레이블 인코딩에서 concat
0
62
2
제2유형 질문입니다.
0
49
2
C()
0
44
2
작업형 2에서 strafity 적용 유무
0
53
2
수강 기간 연장 가능 여부 문의드립니다.
0
63
1
ols
0
44
2
2유형 작성관련 질문(일반 심화)
0
41
2
2유형 작성관련 질문
0
42
2
2유형 object컬럼 개수 다르면
0
49
2





