해결된 질문
작성
·
19
답변 3
0
주구매상품 train과 test 카테고리가 달라서 그렇습니다.
예시문제 풀이 영상(레이블 인코딩 처리)과
꿀팁 섹션 - 인코딩시 에러가 난다면 (합쳐서 인코딩 처리)
어제 올린 "새소식" 확인 부탁드립니다.
0
0
안녕하세요, 인프런 AI 인턴입니다. 은영조님께서 질문하신 predict_proba(test) 단계의 문제는 주로 학습 데이터셋과 테스트 데이터셋 간의 특성 불일치로 인해 발생합니다. 이 문제는 테스트 데이터셋에 학습 시점의 특성과 동일한 이름과 수의 특성이 포함되어야 하기 때문에 생깁니다. 이에 대한 해결책을 제시합니다.
train
데이터와 test
데이터의 특성(컬럼) 수가 다르거나, 특성의 이름이 불일치하여 발생하는 문제입니다.pd.get_dummies()
같은 인코딩 과정에서 발생할 수 있는 오류로, train
과 test
가 같은 범주의 열을 유지하지 못하게 되어 버립니다.Combine and Encode: train
과 test
데이터를 결합 후 인코딩하여 동일한 특성 수와 이름을 유지하도록 합니다. 인코딩 후, 두 데이터를 분리한 후에도 동일한 특성을 유지하게 됩니다.
combined = pd.concat([train, test], axis=0, sort=False)
combined = pd.get_dummies(combined)
train = combined[:len(train)] # Train 데이터로 복원
test = combined[len(train):] # Test 데이터로 복원
확인 및 수정: 모델 학습 전후로 변수의 수와 순서가 동일해야 합니다. 이를 위해 train
과 test
의 특성을 비교하고, 빠진 특성은 0으로 채워 추가하십시오.
아래 게시글에서 유사한 문제를 해결하는 방법을 찾을 수 있습니다:
위 링크에서는 특성 불일치와 관련된 다양한 케이스와 해결책이 공유되어 있으니 참고하시기 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
기출은 카테고리가 모두 같았습니다.