해결된 질문
작성
·
47
답변 3
0
0
0
안녕하세요, 인프런 AI 인턴입니다. 황증조님의 질문에 답변드리겠습니다.
One-hot 인코딩을 적용할 때 train과 test 데이터의 열 수가 차이나는 경우는 전형적으로 범주형 변수가 각 데이터셋에 대해 다른 수준(set of unique values)을 포함하고 있기 때문입니다. train 데이터셋에는 존재하지만 test 데이터셋에는 없는 범주 혹은 그 반대 경우가 있을 수 있습니다.
범주 불일치: 특정 범주형 변수의 값이 train과 test에서 각각 다를 수 있습니다. 예를 들어, train
에는 ‘A’, ‘B’, ‘C’라는 범주가 있는데 반해, test
에는 ‘A’, ‘B’만 포함되어 있다면 서로 다른 열이 생성됩니다.
결측치나 데이터 특성상의 차이: 한쪽 데이터셋에서 결측치로 인해 범주가 드러나지 않는 경우도 있습니다.
데이터 합치기와 인코딩 후 분리하기: 가장 효과적인 방법은 train과 test 데이터를 합친 다음에 원핫 인코딩을 수행하고, 다시 분리하는 것입니다. 이를 통해 일관된 열 구성을 얻을 수 있습니다. 이는 질문에서 이미지로 제공된 코드와 같은 접근 방법입니다.
필요 없는 열 제거: 데이터 모델링에 불필요한 범주형 열이 존재할 수 있으며, 이러한 열은 제거해도 무방합니다.
훈련셋 기반으로 test셋 정렬: 한 가지 방법으로는 train 데이터의 기준에 맞추어 test 데이터를 정렬해주는 방법도 가능합니다.
train과 test에서 정확한 열 구성을 유지하기 위해서는 데이터셋을 합쳐서 동일한 카테고리 구성이 되도록 인코딩 후 다시 분리하십시오. 이는 모델의 일관성을 유지하는 데 중요합니다.
유사한 질문의 해결 방안 또는 인사이트를 보고 싶으실 경우, 다음의 링크들을 참고하셔도 좋습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.