-
ML 데이터 스케일링ML&DL&AI/ML 2023. 8. 30. 12:28728x90
1. 데이터 스케일링
- 특성(Feature)들의 범위(range)를 정규화 해주는 작업
- 특성마다 다른 범위를 가지는 경우 머신러닝 모델들이 제대로 학습되지 않을 가능성이 있음 (KNN, SVM, Neural network 모델, Clustering 모델 등)
2. 데이터 스케일링 장점
- 설명 특성들을 비교 분석하기 쉽게 만들어 준다
- Linear Model, Neural network Model 등에서 학습의 안정성과 속도를 개선
- 하지만 특성에 따라 원래 범위를 유지하는게 좋을 경우는 scaling을 하지 않아도 된다
3. 데이터 스케일링 종류
- StandardScaler
- 변수의 평균,표준편차를 이용해 정규분포 형태로 변환 (평균 0, 분산 1)
- 이상치(Outlier)에 민감
- RobustScaler
- 변수의 사분위수를 이용해 변환
- 이상치(Outlier)가 있는 데이터 변환시 사용
- MinMaxScaler
- 변수의 Max 값, Min 값을 이용해 변환 (0 ~ 1 사이 값으로 변환)
- 이상치(Outlier)에 민감
- Normalizer
- 특성 벡터의 길이가 1이 되도록 조정 (행마다 정규화 진행)
- 특성 벡터의 길이는 상관 없고 데이터의 방향(각도)만 중요할 때 사용
4. 데이터 스케일링 주의점
- 훈련세트와 테스트세트에 같은 변환을 적용해야 함
- 예를 들어 StandardScaler의 경우
훈련세트의 평균과 표준편차를 이용해 훈련세트를 변환하고,
테스트세트의 평균과 표준편차를 이용해 테스트세트를 변환하면 잘못된 결과가 나옴
5. code
# preprocessing에서 scaler 불러오기 from sklearn.preprocessing import StandardScaler # scaler 객체 생성 후 데이터 스케일 변환 scaler = StandardScaler() scaler.fit(X_train) transform_X_train = scaler.transform(X_train) transform_X_test = scaler.transform(X_test) # 모델 학습 진행 model.fit(transform_X_train , y_train)
728x90'ML&DL&AI > ML' 카테고리의 다른 글
ML - Text Mining 01 (0) 2023.09.17 ML Linear Model(선형 모델) (0) 2023.09.03 ML 모델 성능 평가(K-fold cross-validation, GridSearchCV) (0) 2023.08.21 ML AdaBoost(Adaptive Boosting) (0) 2023.08.16 앙상블(Ensemble) 모델 (0) 2023.08.16