범주형 변수의 범주가 다를 경우
train과 test의 범주형 변수 중에서 동일한 변수이지만 범주의 수가 다를 경우, 어떻게 해결해야하나요?
답변 2
0
안녕하세요, 인프런 AI 인턴입니다.
reverq님, 질문해 주신 범주형 변수의 범주 수 차이에 대한 해결 방법에 대해 안내드리겠습니다. 실제로 train과 test 데이터셋 간의 범주형 변수에서 범주의 수가 다를 경우, 모델의 입력 형식이 맞지 않아 예측 과정에서 문제가 발생할 수 있습니다. 이러한 경우에는 다음과 같은 방법들을 적용할 수 있습니다.
범주형 변수 범주 차이 해결 방법
- 데이터 통합 후 인코딩 및 분리:
- 두 데이터셋을 하나로 병합한 후 원핫인코딩을 진행한 다음, 다시 train과 test로 분리하는 방식입니다. 이렇게 하면 동일한 범주 셋이 유지됩니다.
- 두 데이터셋을 하나로 병합한 후 원핫인코딩을 진행한 다음, 다시 train과 test로 분리하는 방식입니다. 이렇게 하면 동일한 범주 셋이 유지됩니다.
# 데이터 통합
combined = pd.concat([train, test])
# 원핫인코딩 진행
combined_encoded = pd.get_dummies(combined)
# 다시 split
train_encoded = combined_encoded.iloc[:len(train)]
test_encoded = combined_encoded.iloc[len(train):]
- 공통 컬럼 유지:
- 인코딩 후 train과 test 모두 공통적으로 존재하는 컬럼만 남기고 나머지를 제거합니다. 이 방법을 사용하면 공통된 입력 형식이 보장됩니다.
- 인코딩 후 train과 test 모두 공통적으로 존재하는 컬럼만 남기고 나머지를 제거합니다. 이 방법을 사용하면 공통된 입력 형식이 보장됩니다.
train_encoded, test_encoded = train_encoded.align(test_encoded, join='inner', axis=1)
- 카테고리 직접 맞추기:
- 특정 컬럼에 대해 미리 두 데이터셋에서 나타날 수 있는 모든 범주를 알고 있는 경우, 이를 기준으로 인코딩할 수도 있습니다.
- 특정 컬럼에 대해 미리 두 데이터셋에서 나타날 수 있는 모든 범주를 알고 있는 경우, 이를 기준으로 인코딩할 수도 있습니다.
이러한 방법들은 두 데이터셋이 일관된 입력을 정확히 받을 수 있도록 보장해 주며, 이를 통해 모델의 성능을 저하시킬 수 있는 데이터 불일치를 피할 수 있습니다.
참고 웹페이지
예시문제 작업형 2 | 인프런: 비슷한 문제 상황에서의 해결 방법에 대한 정보가 있는 페이지입니다.
피처 엔지니어링-n/c_train데이터로 분리 후 다시 컬럼 나열해주는 이유? | 인프런: 데이터 복합 작업 시 주의할 점을 다룬 토론입니다.
입력 데이터의 준비 단계에서 문제가 발생할 수 있는 부분을 명확히 이해하고, 이를 해결한 후에 모델링을 진행하시는 것이 중요합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
수강 연장 문의드립니다.
0
32
2
강의 연장 문의
0
35
2
수강 신청 연장 문의드립니다.
0
49
2
작업형 1번문제... 환경관련
0
32
2
12회 기출은 언제 업데이트 될까요??
0
41
2
8/6 작성한 연장문의 질문글에 대한 재요청
0
39
2
수강기간 연장 문의
0
41
2
수강기간 연장문의
0
37
2
수강기간 연장 요청 문의드립니다
0
38
2
수강 기간 연장 문의
0
47
2
수강연장 가능 문의 (기간 약 한달반)
0
60
2
수강기간 연장 가능할까요 선생님
0
74
2
Section15. 수업에 사용하는 데이터 주소가 다 보이지 않아서 실습을 위한 데이터를 다운 받지 못하고 있습니다.
0
56
3
수강연장요청 문의
0
92
2
아무래도 다음 시험 연장은 어렵겠죠?
0
111
2
빅분기 12회 결과 관련 문의
0
114
1
책이랑 강의랑 순서나 예제가 다른것 같네요
0
83
2
수강연장 문의
0
107
2
재검토 요청 방법 좀 알려주셔요...-.-;;
0
108
2
12회 실기 질문(작업형 2)
0
94
2
뒤로가기 버튼 같은 것이 있나요?
0
67
1
강의 연장 문의
0
101
2
출력값 질문
0
74
2
수업노트가 어디에 있나요?
0
64
1





