정규화가 필요한 이유
- 데이터에서 하나의 sample은 여러 가지 속성 값들을 통해 표현이 가능하다.
- 혹여나 이상치 문제가 심각하거나, 속성 값(feature)들의 크기 및 단위가 다양하고 크게 다른 경우 데이터 분석이 어려워진다.
- 그래서 정규화와 스케일링을 통해 일정하게 맞춰주는 작업이 필요하다
정규화(normalization)란?
- 여러가지 값들이 가지는 범위의 차이를 왜곡하지 않으면서 범위를 맞추는 것
- Min-max normalization
- Z-scroe normalization
- Log scaling
Min-max normalization
- 모든 feature 값이 [0,1] 사이에 위치하도록 scaling
- 분모는 feature가 가질 수 있는 max-min 차이, 분자는 feature 값과 min 차이
- feature 간의 variance 패턴은 그대로 유지한채 scaling이 되도록
- 특정 feature가 variance가 매우 크다면(=이상치가 존재하나다면) 데이터 분석에 적절하지 않을 수 있다.
Z-score normalization
- feature 값들이 평균 = 0, 표준편차 =1 값을 가지는 정규분포를 따르도록 한다.
- 즉, feature 값을 평균값으로 뺀 후 표준편차 값으로 나눈 값을 사용
- 이때 z 값을 표준점수라고 한다
- 이상치(Outlier) 문제에 상대적으로 강력한 스케일링 방법이지만, 최소값-최대값 범위가 정해지지 않음
Log scaling
- feature 값들이 exponential한 분포(positive skewed)를 가지는 경우 log연산 취하여 스케일링
- 비슷하게 sqaure root연산이나, power/exponential 연산 가능