아래와 같이 각 feature 값들의 크기가 다른 경우, 스케일이 큰 ‘연봉’만을 중요한 feature로 모델이 해석하게 될 수도 있다는 것.
- 이때 정규화와 스케일링을 통해 feature들이 가지는 값의 범위를 일정하게 맞춰주는 과정이 필요하다.
여러가지 값(feature)들이 가지는 범위의 차이를 왜곡하지 않으면서 범위를 맞추는 것
앞으로 우리는 아래의 정규화 작업을 진행할 것이다.
모든 feature값이 [0,1] 사이에 위치하도록 scaling 하는 기법
분모는 feature가 가질 수 있는 max값과 min값의 차이를 두고,
분자는 해당 feature값과 min값의 차이로 둔다.
Feature 값들이 μ(평균)=0, 𝝈(표준편차)=1 값을 가지는 정규분포를 따르도록 스케일링하는 기법
즉, Feature값을 평균값으로 뺀 후 표준편차값으로 나눈 값을 사용한다.
이때 z 값을 표준점수(z-score) 라고 한다.
Outlier 문제에 상대적으로 robust(문제에 영향을 덜 주는)한 스케일링 방법이다.
다만 , Min-max Normalization 처럼 feature값이 가지는 최소-최대값 범위가 정해지지 않는 단점이 있다.
대부분의 머신러닝 기법(선형회귀, 로지스틱 회귀, SVM, Neural Networks)들을 활용하는 경우 input에 Standardization을 적용해야 하는 경우가 많다.
특히, Gradient descent(딥러닝)를 활용한 학습 과정을 안정시켜주고 빠른 수렴을 가능케 한다.
z-score가 ±1.5𝝈, ±2𝝈를 벗어나는 경우 해당 데이터를 이상치로 간주하고 제거할 수 있다.
e.g. 대한민국 국민 연봉의 분포
비슷하게 square root 연산을 취하거나
반대의 분포를 가지는 경우 power / exponential 연산을 통해 스케일링 해볼 수 있다.