본문 바로가기
ML/ML-수학, 확률과 통계

정규화(Normalization)와 표준화(Standardization)를 하는 이유

by lucian 2022. 1. 5.

머신러닝 모델링을 하기 전에 기계학습을 하는 이유가 무엇일까?

 

보통 머신러닝 모델을 만들기 위해선 데이터를 전처리해준다.

이 과정에서 사용되는 것 중 하나가 정규화 또는 표준화이다.

왜 이것을 사용하는가 하면 데이터의 컬럼 별 단위 또는 범위를 통일시켜준다고 생각하면 편하다.

컬럼별로 뭐 시간, km, kg 등 다양한 단위를 가지는데 이러면 직접적인 비교가 불가능하다.

 

예를 들자. 넌 180cm인데 난 80kg이니깐 내가 더 몸이 좋아! 라고 한다면 상대방이 나를 이상한 사람 취급할 것이다.

또는 토익 300점(990점 만점)인데 넌 학교 영어점수가 100점(100점만점)이니 내가 더 영어를 잘하네.라고 한다면 똑같이 나를 이상한 취급을 할 것이다. 이처럼 다른 데이터로 비교한다는 것이 말이 안되므로 이를 극복하기 위해 정규화 또는 표준화를 해준다고 생각하면 편하다.

 

 

정규화(normalization)

정규화는 값의 범위를 0~1사이로 옮겨준다. 모든 데이터의 단위가 모두 0~1사이로 옮겨지게 해주는 것이다.

이러면 데이터의 컬럼들이 평등하게 0~1사이로 놓여지기 때문에 기계가 학습하기에 어느 컬럼에 중점을 두고 학습하기보단 평등하게 컬럼들을 보고 학습시킨다.

 

표준화(standardization)

표준화는 먼저 데이터가 정규분포를 따른다는 가정하에 실시된다.(정규분포는 종모양 분포임)

정규분포를 따른다는 가정하에 데이터를 평균은 0, 표준편차는 1이 되도록 만들어준다. 그렇기에 평균은 0이니깐 0의 근처로 많이 잡힐 것이다. 0의 좌우로 표준편차 1이 되게 분포가 될 것이다.

 

 

즉 정규화는 0~1 사이로 범위를 정해지고 표준화는 0을 중심으로 퍼진다고 생각하면 될 것 같다.


그럼 머신러닝에서 정규화를 해야하나 표준화를 해야하나 고민이 생길텐데, 이건 2개를 비교해보고 결정해야한다.

어느 모델에선 정규화를 한 데이터가 값이 더 높을 수도 있고 표준화를 한 데이터가 값이 더 높을 수가 있기 때문에  둘 다 비교해 보는 것을 추천한다.

 

https://bskyvision.com/849

 

정규화(normalization)와 표준화(standardization), 머신러닝 성능 향상을 위한 필수 단계

오늘은 꽤 중요한 이야기를 하고자 합니다. 기본적이기 때문에 중요합니다. 이것을 간과하면 성능에 치명적인 영향을 끼치기 때문에 중요합니다. 바로 정규화(normalization)와 표준화(standardization)

bskyvision.com

제가 쓴 이 글은 이 분의 글을 보고 복습한 포스트입니다. 더 자세한 설명은 이 분의 글을 보시길 바랍니다.

댓글