[Data] 정규화(Normalization) / 표준화(Standardization)

거리 기반 알고리즘의 경우, 모델링 이전에 반드시 정규화 또는 표준화 작업이 필수적이다. 진짜 별거는 아닌데, 정규화와 표준화에 대한 개념이 중간중간 헷갈려서 다시 한번 제대로 정리해보고자 한다.

 

정규화(Normalization)

 

정규화는 데이터의 범위를 0부터 1까지로 변환하여 데이터의 분포를 조정하는 방법이다. 정규화의 경우 해당 값이 어떤 위치에 있는지 파악하는데 유용하다.

 

정규화의 종류는 min-max 정규화 방식이 자주 사용되는 방식이라고 할 수 있겠다. 수식은 아래와 같다.

 

$$ x_{scaled}=\frac{x - x_{min}}{x_{max}-x_{min}} $$

 

표준화(Standardization)

 

표준화는 각 관측치의 값이 전체 평균을 기준으로 어느 정도 떨어져 있는지를 나타낼 때 사용한다. 보통 표준정규분포로 변환하여 평균을 0으로 변환하며, 1 표준편차 거리를 $+ 1$, $ -1$로 나타내고 평균 0으로부터 얼마나 떨어져 있는지를 나타내기 때문에 이를 Z-Score라고 표현한다.

 

 $$Z = \frac{x - \mu }{\sigma }$$

 

이 둘의 차이점을 정리하자면 크게 2가지로 요약이 될 수 있을 것 같다.

 

첫 번째 차이점은 표준화는 평균에서 얼마나 떨어져 있는지를 나타내기 때문에, 가장 큰 값이 1이될 수있고 3.5도 될 수 있는 반면 정규화는 가장 큰 값은 1, 가장 작은 값은 0으로 표현된다는 것이다.

두 번째 차이점은 표준화와 다르게 정규화는 특정 값이 평균으로부터 어느 정도 떨어져 있는지를 바로 알기 힘들다는 것이다.

 

이러한 두 가지 차이점을 잘 짚고 데이터 분석 필요에 따라 사용하면 되겠다.