인프런 커뮤니티 질문&답변
get_dummies 관련문의
해결된 질문
작성
·
18
0
안녕하세요.
get_dummies 관련 문의드립니다.
Feature Engineering 강의 듣다가 문의 있어 글 납깁니다.
[Pclass:3,sex:male,Age:25,Parch:0,Fare:8,Embarked:Q]
만약에 새로운 위에 있는 데이터를 predict 하고 싶으면, df에 concat 시키고, 다시 get_dummies 후에 해당 Row로 predict 해봐야 되는건가요?
그리고 만약에 embarked에 Z라는 새로운 카테고리가 생기면 다시 학습시켜줘야 되는건가요?
답변 2
0
(질문 1) 만약에 새로운 위에 있는 데이터를 predict 하고 싶으면, df에 concat 시키고, 다시 get_dummies 후에 해당 Row로 predict 해봐야 되는건가요?
--> 새로운 data 는 학습에 사용되었던 df 와 섞이면 안되고 새로운 data 만으로 학습 데이터에서 만들어진 column 과 동일한 column 구조로 맞춰줘야 합니다. 새로운 data 한 건이 발생했다면 get_dummies 는 다음과 같이 코딩하면 됩니다.
# 학습 시 사용했던 원-핫 컬럼
dummy_cols = ['Embarked_C', 'Embarked_Q', 'Embarked_S']
import pandas as pd
new = pd.DataFrame({'Embarked': ['Q']})
encoded = pd.get_dummies(new, columns=['Embarked'])
encoded = encoded.reindex(columns=dummy_cols, fill_value=0)
print(encoded)
Embarked_C Embarked_Q Embarked_S
0 1 0
(질문 2)그리고 만약에 embarked에 Z라는 새로운 카테고리가 생기면 다시 학습시켜줘야 되는건가요?
--> 학습 때 없던 Z는 자동으로 모든 열을 0으로 처리합니다:
Embarked_C = 0
Embarked_Q = 0
Embarked_S = 0
따라서, 다시 학습 시킬 필요 없습니다. 단, Z 라는 카테고리가 의미있는 정보이고 많이 발생하는 경우라면 학습 데이터에서 누락된 것이므로 Z 카테고리를 포함해서 다시 학습시켜야 합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
최범준님께서 질문하신 get_dummies와 관련된 데이터 처리 방법에 대해 설명드리겠습니다.
새 데이터에 대한 처리 방법:
- 기존 데이터와 연결: 새 데이터를 예측하기 전에 기존 데이터와 동일한 형식을 갖추어야 합니다. 이를 위해 일반적으로 새로운 데이터를 기존 데이터프레임과
concat시킨 후,get_dummies를 적용합니다.
- get_dummies 적용: 원-핫 인코딩이 적용된 훈련 데이터와 동일한 구조를 갖추기 위해,
get_dummies로 새로운 데이터에도 동일한 직렬 공간이 적용되도록 합니다.
- 예측: 그런 다음, 준비된 데이터로 모델의 predict 함수를 활용하여 예측을 수행합니다.
새로운 카테고리 “Z”에 대한 처리:
- 만약
Embarked에 새로운 카테고리 “Z”가 등장하면, 기존 모델은 이를 처리할 수 있도록 학습되지 않았기 때문에 예측 성능에 영향을 줄 수 있습니다. 따라서 이러한 상황에서는 모델을 새로 학습시키는 것이 필요할 수 있습니다.
- 사전에 예상치 못한 카테고리에 대비하기 위해, 특정 미리 정의된 전략(예: “unknown” 카테고리 생성 등)을 수립하는 것도 고려해 볼 수 있습니다.
위 과정에 대한 이해를 돕기 위해, 비슷한 주제의 이전 질문을 참고하시길 권장드립니다: numpy의 shape은 데이터 조작 및 처리와 관련한 혼란을 줄이는 데 도움이 될 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





