통계·머신러닝
표준화(Standardization) vs 정규화(Normalization)
pittapat
2024. 9. 5. 21:57
모형이 피처의 척도에 민감하게 반응하는 경우가 있다. 이를 방지하기 위해 스케일링이 필요하다. 스케일링(Scailing)이란 데이터를 특정 범위로 조정하는 것을 의미하며, 주로 서로 다른 변수의 범위를 맞추는 데 사용된다. 데이터 스케일링을 위해 표준화와 정규화를 활용할 수 있다. 혼용되어 쓰이는 경우가 많고 헷갈리기 쉬우니 주의하자.
표준화(Standardization)
해당 피처가 표준정규분포의 속성을 갖도록, 즉 평균이 0이고 표준 편차가 1인 분포로 변환한다. Z-스코어 정규화(Z-score Normalization)라고도 한다. 변수 분포가 종 모양일 때 유용하며 이상치에 덜 민감하다.
정규화(Normalization)
피처 범위를 공통 척도(보통 0 과 1 사이)로 변경한다. 극단값이 존재하면 정상적인 관측치를 너무 작은 값으로 변환해 모형의 성능을 떨어뜨린다. 데이터가 정규 분포를 따르지 않고, 상한과 하한이 있는 경우 주로 사용한다. 예를 들어, 이미지 데이터는 픽셀 값이 0~255 사이에 있으므로 0과 1 사이로 정규화하는 것이 일반적이다.
대표적인 정규화 방법으로 Min-Max Scaling이 있으며, 정규화 = Min-Max Scaling 로 통용되는 경우도 많다.
표준화와 정규화의 주요 차이를 표로 나타내면 다음과 같다.
Standardization | Normalization |
계산에 평균과 표준편차 사용 | 계산에 최소값, 최대값 사용 |
평균이 0, 표준편차가 1인 데이터를 만듦 | 서로 다른 크기의 피처를 일치시킴 |
$(-\infty, +\infty)$ | $[0, 1]$ or $[-1, 1]$ |
피처가 정규분포를 따를 때 유용 | 분포에 대해 모를 때 유용 |
StandardScaler() | MinMaxScaler() |