inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

피처 엔지니어링

원핫인코딩 데이터 합치기

해결된 질문

162

reverq

작성한 질문수 12

0

피처 엔지니어링 강의 중 분리한 데이터 다시 합침 부분에서 강의영상과 출력값이 달라서 질문드립니다.

 

image.png

강의화면에서는 107 컬럼, 103컬럼인데요,

 

같은 코드 결과인데 컬럼수가 15개로 나온이유가 궁금합니다.

image.png

 

python 머신러닝 빅데이터 pandas 빅데이터분석기사

답변 2

0

퇴근후딴짓

숫자가 영상에서 잘못 표기된 부분이 맞네요.

크게 달라진 원인은 이전 데이터를 그대로 사용하지 않고

n_train, n_test, c_train, c_test = get_nc_data() # 데이터 새로 불러오기

로 데이터를 새로 불러와서 그렇습니다.

 

더불어 이 셀의 목적은 데이터 합치기를 보여주는 부분으로

concat을 알려드리기 위함에요!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. reverq님, 질문해 주신 내용에 대해 도움을 드리겠습니다.

피처 엔지니어링 과정에서 pd.concat() 등을 통해 데이터 세트를 합쳐 사용하는 이유는, traintest 데이터 세트에서 동일하게 One-Hot Encoding을 하기 위함입니다. One-Hot Encoding은 범주형 변수를 처리할 때 각 범주를 0과 1로 나타내는 변수로 변환합니다. 하지만 traintest 데이터 세트에 서로 다른 범주의 데이터가 있을 경우, 컬럼 수가 다른 문제가 발생할 수 있습니다.

문제 발생 원인:

  1. 범주형 변수 차이: traintest 데이터에 포함된 범주형 변수의 카테고리 수가 다를 수 있습니다. 예를 들어, train에 있는 범주가 test에 없거나 그 반대의 경우입니다.

  2. 컬럼 선택 문제: 데이터 전처리 과정에서 필요한 컬럼만 남기거나 선택되지 않은 컬럼은 포함시키지 않았을 수 있습니다.

해결 방법:

  1. 데이터 병합 후 인코딩: traintest 데이터를 먼저 pd.concat()으로 병합한 후 pd.get_dummies()를 적용하여 One-Hot Encoding을 수행합니다. 이후 다시 traintest로 나누어주는 것이 일반적입니다.
   df = pd.concat([train, test], axis=0)
   df = pd.get_dummies(df, columns=['범주형컬럼'])
   train = df.iloc[:len(train)]
   test = df.iloc[len(train):]
  1. 각 데이터의 모든 범주 고려: traintest 각각에서 One-Hot Encoding 후, 부족한 컬럼을 0으로 채우는 방법도 있습니다:
   missing_cols = set(train.columns) - set(test.columns)
   for col in missing_cols:
       test[col] = 0
   test = test[train.columns]

이와 관련하여 도움이 될 수 있는 답변 URL을 안내드립니다:

이 게시물들은 데이터 인코딩 과정에서 발생할 수 있는 문제, 특히 One-Hot Encoding과 관련된 이슈의 해결 방법을 제시하고 있습니다.

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

작업형2 카테고리

0

8

1

110강 회귀_8번 문의

0

9

2

XGBRegressor 학습 시 warning 출력

0

13

2

데이터 프레임을 변경해도 되나요?

0

10

2

10회 기출 작업형3 문제 2-1 질문

0

15

2

작업형 2 질문

0

16

2

작업형 2 템플릿 확인 요청

0

13

2

작업형2 인코딩 질문

0

22

2

작업형 3 벼락치기 공부방법 질문

0

31

2

기출 11회 작업형 2_전체 데이터 학습 여부

0

32

2

예측값 결과 소수점 차이

0

28

2

기출 문제와 실전챌린지 연습문제 무엇부터 푸는게 나은가요?

0

35

1

전처리 train() test([ ])

0

23

2

작업형 1 배경지식 질문

0

33

2

옳게 풀은건지 질문드립니다!

0

22

1

roc_auc_score

0

30

2

추가질문 합니다

0

22

2

시험환경 구름

0

21

2

2유형 질문드려요

0

21

2

RandomForest vs lgb

0

30

2

전처리 관련질문

0

29

3

작업형3 기출

0

21

2

유형2에서 데이터분할 생략 가능여부

0

33

2

9회 기출 유형3 질문

0

21

2