[Machine Learning] 정규화(Normalization) vs 표준화(Standardization)
정규화와 표준화 둘 중 어떤 상황에 어떤 방법을 선택해야 하는지 궁금해 알아보았다.
정규화 (Normalization)
정규화의 목적은 데이터셋의 numerical value 범위의 차이를 왜곡하지 않고 공통 척도로 변경하는 것이다.
기계학습에서 모든 데이터셋이 정규화 될 필요는 없고, 피처의 범위가 다른 경우에만 필요하다.
Min-Max Scaling
Min-Max Scaling은 정규화의 한 방법으로 모든 피처가 정확하게 [0,1] 사이에 위치하도록 데이터를 변경한다.
2차원 데이터셋일 경우에는 모든 데이터가 x축의 0과 1, y축의 0과 1 사이의 사각 영역에 담기게 된다.
즉, 데이터에서 최솟값을 빼고 전체 범위로 나누는 것이다.
예시) 만약 두 시험의 최소 점수가 0점 최대 점수가 각각 100점, 500점이라고 하면 다음과 같다
표준화 (Standardization)
표준화는 데이터의 분포를 정규분포로 바꿔준다.
즉 데이터의 평균이 0이 되도록하고 표준편차가 1이 되도록 만들어준다.
일단 데이터의 평균을 0으로 만들어주면 데이터의 중심이 0에 맞춰지게(Zero-centered) 된다.
그리고 표준편차를 1로 만들어 주면 데이터가 정규화(Normalized) 된다.
이렇게 표준화를 시키게 되면 일반적으로 학습 속도(최저점 수렴 속도)가 빠르고, Local minima에 빠질 가능성이 적다.
정규화(Normalization) vs 표준화(Standardization)
두 방식의 차이점을 정리하자면 다음과 같다
내가 알고 싶었던 어떤 상황에 어떤 방법을 선택해야하는지는 정확한 답이 없다는 것을 알게 되었다.
통상적으로는 표준화를 통해 이상치를 제거하고,
그 다음 데이터를 정규화 해 상대적 크기에 대한 영향력을 줄인 다음 분석을 시작한다고 한다.
예를 들어, cluster analysis에서 특정 거리 측도를 기반으로 피처 간의 유사성을 비교하기 위해 표준화가 특히 중요할 수도 있다. 또 다른 예는 주성분 분석(Principal Component Analysis)로, 보통 Min-Max Scaling보다 표준화를 선호한다. 왜냐하면 분산을 극대화하는 성분에 관심이 있기 때문이다. 정규화는 이미지 프로세싱에서 자주 사용되는데, pixel intensities를 특정 범위(RGB 색상 범위의 경우 0~255) 내에 맞추려면 정규화가 필요하다. (출처)