machine learning
scikit-learn 에서 제공하는 피처 스케일러(Scaler)
임이레
2023. 5. 12. 00:12
- StandardScaler : 기본 스케일, 각 피처의 평균을 0, 표준편차를 1로 변환
- RobustScaler : 위와 유사하지만, 평균 대신 중간값(median)과 일분위, 삼분위값(quartile)을 사용하여 이상치 영향을 최소화함.
- MinMaxScaler : 모든 피처의 최대치와 최소치가 1,0이 되도록 스케일을 조정
- Normalizer : 피처(컬럼) 이 아니라 row 마다 정규화되면, 유클리드 거리가 1이 되도록 데이터를 조정하여 빠르게 학습할 수 있도록 함.
스케일을 조정하는 이유는 데이터의 값이 너무 크거나, 작을 때 학습이 제대로 되지 않을 수 있기 때문이다. 스케일의 영향이 절대적인 분류기 (e.g. KNN 과 같은 거리기반 알고리즘) 의 경우 ,스케일 조정을 필수적으로 검토해야 한다.
반면 어떤 항목은 원본 데이터의 분포를 유지하는 것이 나을 수도 있다. e.g. 데이터가 거의 한 곳에 집중되어 있는 Feature를 표준화시켜 분포를 같게 만들었을 때 작은 단위의 변화가 큰 차이를 나타내는 것처럼 학습될 수 있다. 또한 스케일의 영향을 크게 받지 않는 분류기(e.g. 트리기반 앙상블 알고리즘) 를 사용하는 경우에도 성능이 준수하게 나오거나 과대적합(overfitting)의 우려가 적다면 생략할 수도 있다.
※ 스케일 조정시 유의해야 할 점은 원본 데이터의 의미를 잃어버릴 수 있다는 것이다. 최종적으로 답을 구하는 것이 목적이 아니라 모델의 해석이나 향후 다른 데이터셋으로의 응용이 더 중요할 때 원 피처에 대한 설명력을 잃어버린다면 모델 개선이 어려울 수 있음.