inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬을 활용한 머신러닝 딥러닝 입문

실습 - Feature Engineering - Titanic 생존 예측

get_dummies 관련문의

해결된 질문

63

최범준

작성한 질문수 9

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라는 새로운 카테고리가 생기면 다시 학습시켜줘야 되는건가요?

 

python 머신러닝 딥러닝 pandas numpy keras tensorflow anaconda matplotlib cnn

답변 2

0

YoungJea Oh

(질문 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 인턴

안녕하세요, 인프런 AI 인턴입니다.

최범준님께서 질문하신 get_dummies와 관련된 데이터 처리 방법에 대해 설명드리겠습니다.

새 데이터에 대한 처리 방법:

  1. 기존 데이터와 연결: 새 데이터를 예측하기 전에 기존 데이터와 동일한 형식을 갖추어야 합니다. 이를 위해 일반적으로 새로운 데이터를 기존 데이터프레임과 concat 시킨 후, get_dummies를 적용합니다.
  2. get_dummies 적용: 원-핫 인코딩이 적용된 훈련 데이터와 동일한 구조를 갖추기 위해, get_dummies로 새로운 데이터에도 동일한 직렬 공간이 적용되도록 합니다.
  3. 예측: 그런 다음, 준비된 데이터로 모델의 predict 함수를 활용하여 예측을 수행합니다.

새로운 카테고리 “Z”에 대한 처리:

  • 만약 Embarked에 새로운 카테고리 “Z”가 등장하면, 기존 모델은 이를 처리할 수 있도록 학습되지 않았기 때문에 예측 성능에 영향을 줄 수 있습니다. 따라서 이러한 상황에서는 모델을 새로 학습시키는 것이 필요할 수 있습니다.
  • 사전에 예상치 못한 카테고리에 대비하기 위해, 특정 미리 정의된 전략(예: “unknown” 카테고리 생성 등)을 수립하는 것도 고려해 볼 수 있습니다.

위 과정에 대한 이해를 돕기 위해, 비슷한 주제의 이전 질문을 참고하시길 권장드립니다: numpy의 shape은 데이터 조작 및 처리와 관련한 혼란을 줄이는 데 도움이 될 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Colab실습관련

0

59

2

강의 수강

0

73

1

섹션 10 비지도 학습에 대하여

0

65

1

훈련과 Predict를 분리할수 없나요?

0

92

2

scikit-learn이 업데이트 된 건가요?

0

158

2

feature scaling 부분

0

124

2

MAtplotlib 기초

0

117

1

섹션9 First Autoencoder 인코더, 디코더 모델 생성 오류 해결 방법

0

195

1

섹션7 텐서플로 허브 Trained_MobileNet 모델 생성 오류 해결 방법

0

330

1

Crash 파일 위치

0

252

1

주피터에서 파일 열기

0

307

1

션 7. CNN (Convolutional Neural Network)의 7번째 강의는 실습 - FashionMNIST 데이터셋 이용 실습 문제 풀이 관련 강의 내용순서 문의

0

245

1

DBSCAN 실습 결과

0

258

1

DBSCAN 질문

0

222

1

Feature Scaling 강의 질문 있습니다!

0

250

1

heatmap에서 numeric_only=True

0

301

1

pd.Series

0

218

1

Feature Scaling

0

223

1

categorical 변수의 수치화

0

181

1

Residual Error

1

186

1

매트릭스로 만들어주는 것

1

183

1

tf.data 를 이용한 shuffling and batch 구성 관련 문의

1

366

2

타이타닉 예제에서 혼동되는 개념이있습니다!

1

278

1

LeNet-5 실습 중 loss값 nan이 나오고 있습니다.

0

656

1