강의

멘토링

커뮤니티

Inflearn Community Q&A

joooooooooo5931's profile image
joooooooooo5931

asked

[After Work Side Projects] Big Data Analytics Engineer Practical Exam (Task Types 1, 2, 3)

Solving Past Exam Questions (Practical Type 2) with One Method

스케일링시 데이터 분리 없이 하는 방법

Resolved

Written on

·

233

·

Edited

0

dcols = train.select_dtypes(include='O').columns

ncols = train.select_dtypes(exclude='O').columns

위처럼 데이터를 인코딩과 스케일링 작업하기 전에 수치형, 오브젝트의 컬럼명을 변수에 미리 저장해 놓고, 아래처럼 분리 없이 스케일링과 인코딩 작업을 진행해도 되는지 궁금합니다. 동작은 제대로 하는 것 같아서 굳이 분리해야 하나 의문이 들어 질문 드립니다.

 

라벨인코딩과 스탠다드 스케일러를 둘 다

사용한다고 가정했을 때 입니다.

 

from sklearn.preprocessing import StandardScaler

scale = StandardScaler()

train[ncols] = scale.fit_transform(train[ncols])

test[ncols] = scale.fit_transform(test[ncols])

 

from sklearn.preprocessing import LabelEncoder

le = LabelEncoder()

 

for col in dcols:

train[col] = le.fit_transform(train[col])

test[col] = le.fit_transform(test[col])

 

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

Answer 1

0

roadmap님의 프로필 이미지
roadmap
Instructor

 

네 나누지 않아도 됩니다.

다만 사용법이 틀렸습니다 ㅠㅠ

스케일링과 레이블인코딩은 test에 적용시 fit_transform 이 아니라 transform만 필요합니다.

 

joooooooooo5931님의 프로필 이미지
joooooooooo5931
Questioner

그러네요 학습을 두 번 적었네요..

라벨 인코딩이 아닌 원핫인코딩으로 할 경우에도 동일한거죠?

pd.get_dummies(train)

pd.get_dummies(test)

로 하면 오브젝트만 알아서 처리되니

라벨 인코딩 대신 원핫 인코딩으로 할 경우는

위 명령만 있으면 되는걸까요?

roadmap님의 프로필 이미지
roadmap
Instructor

네 맞습니다.

joooooooooo5931's profile image
joooooooooo5931

asked

Ask a question