인프런 커뮤니티 질문&답변

강해성님의 프로필 이미지
강해성

작성한 질문수

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

회귀 실습 2: 캐글경연 주택가격 예측 - Advanced Regression Techniques - 02

실제 데이터 One hot encoding

작성

·

343

0

먼저 항상 수업 잘 듣고 있고 감사하다고 말씀드리고 싶습니다!

선생님의 수업을 듣고, 혼자서 해당 데이터를 가지고 kaggle에 직접 제출까지 해보고 싶어 데이터 전처리하는 도중 문제가 발생해 질문 드립니다.

강의에서는 train.csv만을 가지고 전처리를 해서 문제가 없었지만,

실제로 제출을 위해선 test.csv도 train.csv 파일과 같이 전처리를 해야한다고 알고 있습니다.

one hot encoding 하기 전 train.csv, test.csv의 피처 수는 각각 76, 75로 target 값을 제외하면 같은 수인데, get_dimmies함수를 적용하면 피처 수가 각각 272, 255로 다른 값으로 됩니다.

train데이터로 훈련하고 예측을 하려면 test데이터의 피처의 수가 train데이터와 같아야한다고 알고 있는데, 이런 문제는 어떻게 해결해야할까요 그리고 왜 이런 문제가 발생하는 건가요?, 제 추측으로는 각 피처들의 결측 값의 유무로 인해 nan값이 있는 피처들이 컬럼이 하나 더 생겨 차이가 발생하는 것 같은데, 그렇다고 해도 어떻게 해결해야할지 감이 오지 않습니다..답변 기다리겠습니다!!

답변 3

0

강해성님의 프로필 이미지
강해성
질문자

선생님이 사용하신 것과 같은 house price 데이터입니다!

label encoding 적용해보겠습니다.

감사합니다 ㅎㅅㅎ

0

강해성님의 프로필 이미지
강해성
질문자

선생님께서 수업에서 알려주신 거 처럼 실수 결측 값 채운 후pd.get_dummies(train) 하고 test 데이터도 똑같이 채우고 dummies(test) 했습니다!!

권 철민님의 프로필 이미지
권 철민
지식공유자

코드를 적어주시지 않으면 제가 더 도와드릴 수가 없습니다.

코드는 동일한데, 데이터가 달라서 제가 돌려 볼수 없는 건가요?

권 철민님의 프로필 이미지
권 철민
지식공유자

아님. 스스로 해당 object 컬럼들을 모두 value_counts()를 사용해서 학습과 테스트 데이터 모두 값을 비교 해 보십시요.

이게 번거로우시면,

one-hot encoding을 꼭 해봐야 하시겠다면 모르겠지만, 그렇지 않다면 label encoding 적용을 추천드립니다.

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까, 

잘 듣고 계시다니 저도 기쁘군요 ^^

제 생각엔 학습 데이터 피처에는 있는 값이 테스트 데이터 피처에는 없는것 같습니다.  가령 학습데이터에는 1, 2,3 으로 되어 있는데, 테스트 데이터에는 1, 2 만 있는 것 같습니다. 

어떤 컬럼들을 get_dummies()를 하셨는지 코드를 볼 수 있을까요? 제가 함 확인해 보겠습니다. 

강해성님의 프로필 이미지
강해성

작성한 질문수

질문하기