inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개정판] 파이썬 머신러닝 완벽 가이드

회귀 Summary

원-핫인코딩 데이터 크기 맞추는 방법

1264

ansominho

작성한 질문수 1

0

캐글 주택가격 예측에서 원-핫인코딩이 적용된 모델을 가지고 테스트 데이터를 예측해보려고 하니 train 데이터를 원-핫 인코딩 한것과 test 데이터를 동일하게 원-핫 인코딩을 했을때  입력 데이터의 칼럼수가 달라서 오류가 발생을 했습니다.

원-핫 인코딩시에 만약에 학습데이터와 테스트 데이터의 범주가 다르게 들어가 있을 경우 어떻게 데이터를 맞춰야 되는지요?

예를 들어 

학습 데이터에는 지역 = [서울, 인천, 부산, 수원,광주] 로 되어 있는데  테스트 데이터에는 = [ 서울, 인천, 강릉, 천안] 이런 식으로 범주가 다른 데이터가 있거나 한쪽에는 데이터가 빠질 경우에 원-핫 인코딩을 하면 항목이 다르게 되거나 갯수가 안맞지 않나요? 이런 문제를 어떻게 해결해야 되는지요.

머신러닝 배워볼래요? python 통계

답변 1

2

권 철민

안녕하십니까,

네, 학습데이터 만으로 원-핫 인코딩을 하면 해당 문제가 발생할 수 있습니다.

그래서 보통은 학습과 테스트 데이터를 합쳐서 데이터를 만든 후에 함께 원-핫 인코딩을 하고 이후에 다시 학습과 테스트 데이터를 분리합니다.  분리할 때는 결정값(예를 들어 TARGET 피처)이 NULL인 데이터 세트는 테스트 데이터, 그렇지 않는 데이터 세트는 학습 데이터로 다시 분리합니다.  그리고 테스트 데이터 세트에서 결정값 피처를 drop 합니다.

예를 들어 아래와 같이 코드를 작성합니다.

total_data = pd.concat([train_data, test_data])

total_data = pd.get_dummies(total_data)

train_data = total_data[~total_data['TARGET'].isnull()]

test_data = total_data[total_data['TARGET'].isnull()]

test_data = test_data.drop('TARGET', axis=1)

감사합니다.

안녕하세요 열심히 수강중인 학생입니다

0

62

2

정수 인덱싱

0

68

2

넘파이 오류

0

85

2

11강 numpy의 axis 축 질문 드립니다.

0

85

2

Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.

0

79

2

Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.

0

70

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

75

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

64

2

5강 강의 오류가 있어요.

0

84

1

실무에서 LTV 관련 모델 선택 질문입니다!

0

72

2

14강 강의 듣는중에 궁금한게 있어서 질문합니다~

0

69

3

파이썬 다운그레이 후 사이킷런 재설치

0

117

2

좋은 강의 감사합니다.

0

72

2

scoring 함수 음수값

0

67

2

6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?

0

100

2

분류 평가 정확도 예측

0

76

2

안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.

0

99

1

카카오톡 채널 있나요

0

107

1

혹시 강의에서 사용하시는 ppt 받을 수 있는건가요

0

189

2

pca 스케일링 관련하여 질문드립니다.

0

100

2

주피터 대신 구글 코랩

0

172

2

강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?

0

148

2

실루엣 스코어..

0

86

2

float64 null 값 처리 방법

0

103

2