해결된 질문
작성
·
153
·
수정됨
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])
그러네요 학습을 두 번 적었네요..
라벨 인코딩이 아닌 원핫인코딩으로 할 경우에도 동일한거죠?
pd.get_dummies(train)
pd.get_dummies(test)
로 하면 오브젝트만 알아서 처리되니
라벨 인코딩 대신 원핫 인코딩으로 할 경우는
위 명령만 있으면 되는걸까요?