인프런 커뮤니티 질문&답변
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다.
shs4166님이 경험하신 문제는 훈련 데이터와 테스트 데이터 간의 특성(컬럼) 불일치로 인한 것 같습니다. 이는 get_dummies 나 다른 인코딩을 통해 데이터 처리 시 자주 발생하는 문제입니다.
문제의 원인
특성 불일치는 훈련 데이터에 존재하는 특정 범주형 값이 테스트 데이터에는 없거나, 그 반대의 상황으로 인해 발생할 수 있습니다. 이로 인해 훈련 데이터와 테스트 데이터 간의 컬럼 수가 달라져 모델이 예측 과정을 진행하는데 오류가 생깁니다.
해결 방법
- 훈련과 테스트 데이터 통합 및 인코딩:
- 훈련과 테스트 데이터를 하나의 데이터프레임으로 합친 후 한 번에 인코딩을 진행합니다. 이렇게 하면 모든 범주형 값이 동일한 컬럼으로 인코딩됩니다.
import pandas as pd - 훈련과 테스트 데이터를 하나의 데이터프레임으로 합친 후 한 번에 인코딩을 진행합니다. 이렇게 하면 모든 범주형 값이 동일한 컬럼으로 인코딩됩니다.
# 데이터 결합
full_data = pd.concat([train, test], axis=0, sort=False)
# 인코딩
full_data_encoded = pd.get_dummies(full_data)
# 다시 분할
train_encoded = full_data_encoded[:len(train)]
test_encoded = full_data_encoded[len(train):]
“`
- 컬럼 일치 확인:
- 모든 데이터프레임의 컬럼이 동일한지 확인하여 필요한 경우 누락된 컬럼에 0을 채워 넣습니다.
- 모든 데이터프레임의 컬럼이 동일한지 확인하여 필요한 경우 누락된 컬럼에 0을 채워 넣습니다.
이 문제와 유사한 다른 질문의 답변에서는 추가적인 설명과 코드 예제를 확인할 수 있습니다. 유사한 경험을 하신 다른 수강생들의 사례를 참고하시길 권장드립니다:
- 예시문제 작업형2 test 데이터 예측시 발생하는 오류
- test파일 예측에서 자꾸 에러가 발생합니다
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






