통계·머신러닝

표준화(Standardization) vs 정규화(Normalization)

pittapat 2024. 9. 5. 21:57

모형이 피처의 척도에 민감하게 반응하는 경우가 있다. 이를 방지하기 위해 스케일링이 필요하다. 스케일링(Scailing)이란 데이터를 특정 범위로 조정하는 것을 의미하며, 주로 서로 다른 변수의 범위를 맞추는 데 사용된다. 데이터 스케일링을 위해 표준화와 정규화를 활용할 수 있다. 혼용되어 쓰이는 경우가 많고 헷갈리기 쉬우니 주의하자.

 

표준화(Standardization)

해당 피처가 표준정규분포의 속성을 갖도록, 즉 평균이 0이고 표준 편차가 1인 분포로 변환한다. Z-스코어 정규화(Z-score Normalization)라고도 한다. 변수 분포가 종 모양일 때 유용하며 이상치에 덜 민감하다. 

 

xstd=xmean(x)sd(x)

 

정규화(Normalization)

피처 범위를 공통 척도(보통 0 과 1 사이)로 변경한다. 극단값이 존재하면 정상적인 관측치를 너무 작은 값으로 변환해 모형의 성능을 떨어뜨린다. 데이터가 정규 분포를 따르지 않고, 상한과 하한이 있는 경우 주로 사용한다. 예를 들어, 이미지 데이터는 픽셀 값이 0~255 사이에 있으므로 0과 1 사이로 정규화하는 것이 일반적이다.

 

대표적인 정규화 방법으로 Min-Max Scaling이 있으며, 정규화 = Min-Max Scaling 로 통용되는 경우도 많다.

 

xnor=xmin(x)max(x)min(x)

 

 

 

표준화와 정규화의 주요 차이를 표로 나타내면 다음과 같다.

Standardization Normalization
계산에 평균과 표준편차 사용 계산에 최소값, 최대값 사용
평균이 0, 표준편차가 1인 데이터를 만듦 서로 다른 크기의 피처를 일치시킴
$(-\infty, +\infty)$ $[0, 1]$ or $[-1, 1]$
피처가 정규분포를 따를 때 유용 분포에 대해 모를 때 유용
StandardScaler() MinMaxScaler()