ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ML 데이터 스케일링
    ML&DL&AI/ML 2023. 8. 30. 12:28
    728x90

    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
Designed by Tistory.