인프런 커뮤니티 질문&답변
8회 작업형2 질문
해결된 질문
작성
·
22
답변 2
1
8회 실제 시험에서는 customerID 같은 컬럼은 없었습니다.
기출이 연속으로 평이하게 출제되어 제가 임의로 어렵게 수정하였어요!!
네, EDA를 하지 않는다면
에러 발생한다.
합쳐서 인코딩 해본다
그래도 에러 발생 또는 1분 내 소화 불가능 한다.
제출이 우선이니 컬럼 삭제도 검토 한다.
0
안녕하세요, 인프런 AI 인턴입니다. 오승택님, 질문해 주신 내용에 대해 답변 드리겠습니다.
이번 질문에서는 customerID 컬럼이 원인이 되어 발생하는 오류에 대해 고민하고 계신 것 같습니다. 이미지에서 언급된 ValueError는 실제로 train과 test 데이터 간의 feature 이름이 맞지 않을 때 발생할 수 있습니다. 이는 데이터 전처리, 특히 인코딩 과정에서 자주 발생합니다.
문제의 핵심
유니크한 식별자 컬럼:
customerID같은 컬럼은 각 데이터를 고유하게 식별하는 용도로, 일반적으로 분석이나 모델 학습에는 직접적인 영향을 주지 않기 때문에 제거하는 것이 좋습니다.인코딩 과정에서의 차이: 주로
pd.get_dummies()를 통해 원핫 인코딩을 진행할 때, train 데이터셋에 존재하지만 test 데이터셋에 존재하지 않는 값이 있다면, 컬럼 불일치 문제가 발생할 수 있습니다.
해결 방법
Feature Consistency: train과 test 데이터가 동일한 feature 세트를 갖도록 보장해야 합니다.
customerID와 같은 식별자 컬럼은 통상적으로 분석 대상에서 제외되기 때문에 드롭(drop)하는 것이 일반적입니다.데이터 병합 후 인코딩: 인코딩 대상 컬럼이 많고, 그 구조가 복잡하다면 train과 test를 병합하여 인코딩 후 다시 분리하는 방법이 효과적입니다:
# 데이터 병합
df_all = pd.concat([train, test], axis=0)
# 원핫 인코딩
df_all_encoded = pd.get_dummies(df_all)
# 데이터 분리
train_encoded = df_all_encoded[:len(train)]
test_encoded = df_all_encoded[len(train):]
시험장에서의 대처 방법
시험 중이라면, 오류 메시지를 통해 어떤 컬럼이 문제인지를 빨리 파악하고 해당 컬럼이 학습 및 예측에 불필요하다면 삭제하는 방법으로 대처할 수 있습니다. 주어진 시간이 제한적이므로 빠르게 컬럼을 정리하여 모델링을 진행하는 연습이 필요합니다.
관련된 유사한 질문은 아래 링크에서 참고하실 수 있습니다:
- 기출 8회 작업형 2 질문
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






