해결된 질문
작성
·
166
0
# 수치형 데이터와 범주형 데이터 분리
n_train = train.select_dtypes(exclude='object').copy()
c_train = train.select_dtypes(include='object').copy()
n_test = test.select_dtypes(exclude='object').copy()
c_test = test.select_dtypes(include='object').copy()
# 수치형 변수 스케일링 (로버스트)
from sklearn.preprocessing import RobustScaler
scaler = RobustScaler()
cols = ['Age', 'AnnualIncome', 'FamilyMembers', 'ChronicDiseases']
display(n_train.head())
n_train[cols] = scaler.fit_transform(n_train[cols])
n_test[cols] = scaler.transform(n_test[cols])
n_train.head()
# 범주형 변수 인코딩(원핫 인코딩)
display(c_train.head())
c_train = pd.get_dummies(c_train)
c_test = pd.get_dummies(c_test)
c_train.head()
# 분리한 데이터 다시 합침
train = pd.concat([n_train, c_train], axis=1)
test = pd.concat([n_test, c_test], axis=1)
print(train.shape, test.shape)
train.head()
수치형/범주형 데이터 분리를 시행하는데,
무조건 분리 후 시행해야 하는지 질문드립니다.
답변 1
1
아닙니다. 분리하지 않고 train = pd.get_dummies(train)
으로 그대로 사용해주세요:)
4회 이후 기출 유형풀이에서는 분리하지 않고 설명하고 있어요!
why?
기초 과정에서 이렇게 다뤘던 이유는 추후 문제 난이도가 올라가면서 수치형이지만 범주형 데이터인 문제들이 출제 되는 것을 감안했던 것이었는데 작업형2의 경우 아직 고민해서 전처리할 정도의 난이도로 올라가진 않고 있어요!