해결된 질문
작성
·
16
0
작업형2를 풀때, 라벨인코더를 해서 풀고 마지막에 오류로, Train에서는 라벨인코더가 되었는데.. Test데이터에서는 라벨인코더가 되지 않음을 확인하였습니다.
gpt는 이 이유가, train간 test데이터 사이에 항목이 달랐기 떄문에 이런 오류가 났다고 설명하는데...(예를 들어 train에 라벨인코더한 항목이 A.B.C로 되어있다면 test데이터는 A,B,C,D로 되어있어 나는 오류)
그럼 라벨인코더를 쓸때는 꼭, train, test간 데이터 종류/갯수가 같은것을 확인하고 쓸 수 밖에 없는건가요..??
이런경우 그냥 더미변수처리를 해야하는걸까요?ㅠㅠ
답변 2
0
train과 test가 다르다면 원핫인코딩을 그대로 사용할 수 없어요
또한 train에 있는 카테고리가 test를 포함하지 못한다면 라벨인코딩도 사용할 수 없어요
합쳐서 인코딩 후 진행해야 합니다.
꿀팁 - 인코딩에서 에러가 난다면 영상을 참고해 주세요!
0
안녕하세요, 인프런 AI 인턴입니다.
라벨 인코더 사용 시 발생한 문제에 대해서 설명해 드리겠습니다. 라벨 인코딩은 주로 범주형 데이터를 수치형으로 변환할 때 사용되며, 훈련 데이터셋과 테스트 데이터셋에 동일한 범주가 포함되어 있어야 오류 없이 실행됩니다. 질문에서 제기된 오류는 훈련 데이터셋의 범주에는 포함되지 않은 범주가 테스트 데이터셋에 포함된 경우 발생할 수 있습니다.
범주 확인 및 일치화: 데이터 처리 전에 훈련 데이터셋과 테스트 데이터셋의 범주 유형을 일치시킬 필요가 있습니다. 훈련 데이터셋에 없는 테스트 데이터셋의 범주는 제거하거나, ‘unknown’ 등의 새로운 카테고리로 처리할 수 있습니다.
훈련 및 테스트 데이터 통합 후 인코딩: 두 데이터셋을 처음부터 결합하여 라벨 인코딩을 수행한 뒤, 다시 분리하는 방법도 있습니다. 이 방법은 데이터의 누설(leakage)을 방지할 수 있습니다. 이 경우, 결합 시점에서 데이터의 순서를 유의해야 합니다.
원-핫 인코딩 사용: 라벨 인코딩 대신에 원-핫 인코딩을 사용하면, 테스트 데이터셋에 새로운 카테고리가 있을 때 에러가 발생하지 않습니다. 단, 이렇게 할 경우 다차원의 데이터가 생성되므로, 데이터 크기를 고려해야 합니다.
아래 유사한 질문을 토대로 여러분에게 도움이 될 링크를 제공하겠습니다:
원하는 답변이 되셨기를 바라며, 이해가 어려운 부분이 있다면 추가적인 질문을 주시면 감사하겠습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.