Inflearn Community Q&A
get_dummies 관련문의
Resolved
Written on
·
58
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라는 새로운 카테고리가 생기면 다시 학습시켜줘야 되는건가요?
Quiz
로지스틱 회귀는 주로 어떤 종류의 머신러닝 문제에 사용될까요?
회귀 (Regression)
군집화 (Clustering)
차원 축소 (Dimensionality Reduction)
분류 (Classification)
Answer 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은 데이터 조작 및 처리와 관련한 혼란을 줄이는 데 도움이 될 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





