묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
pca 스케일링 관련하여 질문드립니다.
안녕하세요 강사님! 덕분에 머신러닝 강의를 재밌게 수강중입니다.다름이 아니라 이번 강의에서 pca이전 standard scaler를 적용하여야 한다고 하셨는데혹시 standard scaler 대신 min-max scaler를 사용하면 안되는 걸까요?
-
해결됨캐글 Advanced 머신러닝 실전 박치기
캐글데이터에서 스케일링 및 라벨인코딩(pd.factorize) 문의
안녕하세요 강사님! 강의 잘 듣고 있습니다. 캐글에 참여하고있는데, 스케일링 및 라벨인코딩(pd.factorize) 에서 막혀서 질문 드립니다. 1. 스케일링 관련 문의 데이터 전처리시, Standard Scaling을 한다 가정하였을 때, '파이썬 머신러닝 완벽 가이드' 나 기타 다른 자료를 찾아봐도, train_split 후 X_train, X_test 데이터에 대해서 스케일링을합니다. 저희 데이터에서는 아래와 같은경우에, 마지막 TARGET이 없는 테스트 데이터 셋에 어떻게 스케일링 해야하는지 궁금합니다. (제 생각엔 train_split 하기 전, apps_all 을 스케일링 하면 될 것같은데, 방법을 모르겠습니다) object_columns = apps_all.dtypes[apps_all.dtypes == 'object'].index.tolist() for column in object_columns: apps_all[column] = pd.factorize(apps_all[column])[0] apps_all_train = apps_all[~apps_all['TARGET'].isnull()] apps_all_test = apps_all[apps_all['TARGET'].isnull()] apps_all_test = apps_all_test.drop('TARGET', axis=1) from sklearn.model_selection import train_test_split ftr_app = apps_all_train.drop(['SK_ID_CURR', 'TARGET'], axis=1) target_app = apps_all_train['TARGET'] train_x, valid_x, train_y, valid_y = train_test_split(ftr_app, target_app, test_size=0.3, random_state=2020) from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() scaler.fit(train_x) train_x = scaler.transform(train_x) valid_x = scaler.transform(valid_x) 이렇게 하면 정말 제출해야하는 마지막 데이터(apps_all_test) 데이터에 대해서는 어떻게 스케일링을 해야하나요? 2. 위 코드에서 pd.factorize 를 하게되면 object 칼럼들이 int형 컬럼으로 바뀌게 되는데, 이 이후 스케일링을 하게되면, 라벨인코더 결과값들마저 스케일링 됩니다. 이는 뭔가 잘못됐다는 생각이 듭니다. 혹시 숫자형컬럼(int or float) 들에 대해 스케일링을 먼저하고, object 칼럼들에 대해 라벨인코딩을 해야하나요? 감사합니다.