데이터의 정규화(normalization) 또는 표준화(standardization)이 필요한 이유

Mozen

·

2023. 7. 14. 00:33

반응형

 

 

[목차]
1. 서론
2. 데이터의 정규화(normalization)와 표준화(standardization) 개념 소개
3. 정규화와 표준화의 목적과 필요성
    3.1. 이상치(outliers) 처리
    3.2. 변수 간 스케일 차이 해결
    3.3. 모델의 수렴 속도 향상
    3.4. 고차원 데이터의 문제 해결
4. 정규화와 표준화 방법
    4.1. 정규화
    4.2. 표준화
5. 정규화와 표준화의 선택 기준
    5.1. 모델 종류에 따른 선택
    5.2. 데이터 분포와 특성 고려
    5.3. 성능 비교 및 실험 결론
6. 결론

 

1. 서론

 

    머신러닝은 데이터를 학습하여 패턴을 파악하고 예측 모델을 만드는 분야로, 데이터의 품질과 특성이 모델의 성능에 큰 영향을 미칩니다. 데이터 전처리는 머신러닝 과정에서 필수적인 단계로, 이 중에서도 정규화(normalization)와 표준화(standardization)는 매우 중요한 작업입니다. 이 글에서는 정규화와 표준화의 개념과 필요성에 대해 알아보고, 어떤 경우에 어떤 방법을 선택해야 하는지에 대해 다루겠습니다.

반응형

 

2. 데이터의 정규화와 표준화 개념 소개

 

    정규화와 표준화는 모두 데이터의 스케일을 조정하는 방법입니다. 정규화는 데이터를 특정 범위로 변환하여 범위를 일치시키는 작업을 의미하며, 표준화는 평균을 0으로, 표준편차를 1로 변환하여 데이터를 조정하는 작업을 의미합니다.

 

 

3. 정규화와 표준화의 목적과 필요성

 

  3.1. 이상치(outliers) 처리

    정규화와 표준화는 이상치(outliers)를 처리하는 데에도 효과적입니다. 이상치는 일반적인 데이터 패턴과 다른 값을 가지는 데이터로, 이를 처리하지 않으면 모델의 성능이 저하될 수 있습니다. 정규화와 표준화를 통해 데이터를 조정하면 이상치의 영향을 줄이고 모델이 더욱 일반적인 패턴을 학습할 수 있습니다.

 

  3.2. 변수 간 스케일(scale) 차이 해결

    머신러닝 모델은 변수 간의 스케일 차이로 인해 올바른 학습을 수행하지 못할 수 있습니다. 예를 들어, 물체에 대한 2개의 특성(A, B)으로 가격(C)을 예측하는 식을 만든다고 하겠습니다. A은 물체의 포아송 비에 대한 데이터로 0.25에서 0.3 사이의 값을 갖고, B는 물체의 영 계수에 대한 데이터로 200에서 206 GPa 사이의 값을 갖는다고 가정합니다. 두 특성은 단위가 다르며(무차원과 GPa) 값의 범위에도 차이가 있습니다. 따라서, 원래의 값을 갖고 회귀식을 만들면 포아송 비(A)에 대한 계수 크기는 영 계수(B)에 대한 계수 크기보다 클 것으로 예상됩니다. 이는 예측 값에 대한 포아송 비의 영향이 영 계수의 영향보다 크기 때문인지, 영 계수의 단위(unit)가 포아송 비의 단위보다 훨씬 크기 때문에 그에 대한 값 보정이 계수에서 이뤄진 것인지 확인하기 어렵습니다. 이러한 문제는 입력 변수가 많아지면 많아질수록 발생 가능성이 커지며, 파악하기가 더더욱 어려워집니다.

 

  3.3. 모델의 수렴 속도 향상

    일부 머신러닝 알고리즘은 데이터가 정규 분포를 따를 때 최적의 성능을 발휘합니다. 정규화나 표준화를 통해 데이터의 분포를 조정하면 모델이 보다 빠르게 수렴하고 최적의 결과를 얻을 수 있습니다.

 

  3.4. 고차원 데이터의 문제 해결

    고차원 데이터는 변수의 개수가 많아지면서 모델 학습에 어려움을 초래할 수 있습니다. 이 때 정규화와 표준화를 통해 변수들을 조정하면, 데이터의 불필요한 차원을 줄이고 모델 학습을 효율적으로 진행할 수 있습니다.

 

 

4. 정규화와 표준화 방법

 

  4.1. 정규화

    정규화는 데이터의 값을 특정 범위로 조정하는 방법입니다. 가장 일반적인 방법은 최소 - 최대 정규화(Min - Max normalization)입니다. 이 방법은 데이터의 최솟값과 최댓값을 이용하여 데이터를 일정 범위 내의 값으로 변환시킵니다. 일반적으로 최솟값을 0, 최댓값을 1로 변환합니다. 최소 - 최대 정규화의 수식은 다음과 같습니다: $$  x_{scaled} = \frac{x-x_{min}}{x_{max}-x_{min}} $$

    만약 스케일링(scaling) 범위를 [0, 1]로 하지 않고 임의의 [a, b]로 설정한다면, 데이터 변환식은 다음과 같아집니다: $$ x_{scaled} = \frac{x-x_{min}}{x_{max}-x_{min}} * (b-a) + a $$ 

 

  4.2. 표준화

    표준화는 데이터의 평균을 0으로, 표준편차를 1로 조정하는 방법입니다. 가장 일반적인 표준화 방법은 Z-점수 표준화(Z-score standardization)입니다. 이 방법은 데이터의 각 값에서 평균을 빼고, 표준편차로 나누어 변환하는 방법입니다. Z-점수 표준화의 수식은 다음과 같습니다: $$ z = \frac{x-u}{s} $$

    여기서 u와 s는 각각 학습 데이터의 평균과 표준편차를 의미합니다.

 

 

5. 정규화와 표준화의 선택 기준

 

  5.1. 모델 종류에 따른 선택

    정규화(normalization)와 표준화(standardization)는 머신러닝 모델에서 데이터를 전처리하는 중요한 단계입니다. 그러나 어떤 상황에서 어떤 방법을 선택해야 하는지는 모델 종류에 따라 다를 수 있습니다.

  • 신경망 모델: 정규화를 선호합니다. 신경망은 보통 입력 데이터의 크기와 분포에 민감하게 반응하므로, 정규화를 통해 데이터의 범위를 [0, 1] 또는 [-1, 1]로 조정하는 것이 도움이 됩니다.
  • 트리 기반 모델: 일반적으로 정규화 또는 표준화를 적용하지 않습니다. 이 모델들은 데이터의 상대적인 순서를 고려하기 때문에 데이터의 스케일링에 크게 영향을 받지 않습니다.
  • 기타 모델: 모델에 따라 다르지만, 일반적으로는 정규화나 표준화 중 하나를 선택하여 적용할 수 있습니다. 이 경우, 데이터 분포와 특성을 고려하여 선택하는 것이 중요합니다.

 

  5.2. 데이터 분포와 특성 고려

    데이터의 분포와 특성은 정규화와 표준화의 선택에 영향을 미칩니다. 다음과 같은 상황에서 정규화와 표준화를 고려해야 합니다:

  • 정규화: 데이터가 이상치(outlier)가 없으며, 분포가 크게 치우쳐 있지 않을 때 유용합니다. 예를 들어, 이미지 픽셀 값의 범위를 [0, 1]로 조정하거나, 자연어 처리에서 문장 길이를 정규화하는 경우가 있습니다.
  • 표준화: 데이터에 이상치가 있거나, 분포가 치우쳐 있을 때 유용합니다. 이 방법은 데이터를 평균이 0이고 표준 편차가 1인 정규 분포로 변환합니다. 특히, 선형 회귀나 로지스틱 회귀와 같은 모델에서 특성의 스케일링이 중요한 역할을 할 수 있습니다.

 

  5.3. 성능 비교 및 실험 결과

    정규화와 표준화의 성능은 문제의 종류와 데이터의 특성에 따라 다를 수 있습니다. 따라서, 다양한 실험을 통해 어떤 전처리 방법이 모델의 성능을 더욱 향상시키는지 확인하는 것이 중요합니다.

    실험을 수행할 때는 다음 단계를 따라야 합니다:

  • 두 가지 전처리 방법을 선택하여 데이터셋을 준비합니다.
  • 모델을 구축하고 각각의 전처리 방법을 적용하여 학습 및 평가를 수행합니다.
  • 성능 지표를 비교하여 어떤 전처리 방법이 더 나은 결과를 제공하는지 확인합니다.
  • 실험 결과에 따라 최적의 전처리 방법을 선택하고, 추가적인 조정이나 개선을 진행합니다.
  • 실험 결과를 통해 얻은 결론을 기반으로, 모델의 성능을 향상시키기 위해 정규화 또는 표준화를 적용할 수 있습니다.

 

 

6. 결론

 

    회귀식에서 입력 변수들의 계수는 각 입력 변수가 예측 값에 미치는 영향의 크기를 직관적으로 보여줍니다. 하지만, 입력 변수들은 보통 서로 다른 의미(특징)를 갖고 있으며 값의 범위(range) 차이가 크기 때문에 회귀식을 보고 직관적으로 계수의 의미를 정확하게 파악하기 어렵습니다. 이를 해결하기 위해 머신러닝/딥러닝 알고리즘을 훈련시키는 데 있어서 입력 변수들을 정규화(normalization) 또는 표준화(standardization) 해주는 것은 매우 중요합니다.

    각 scaling 방법들에 따라 장단점이 있지만, 표준화 방법이 회귀식에서의 계수 역할을 직관적으로 이해하는데 도움을 줍니다. 왜냐하면, 표준화 방법을 이용하여 입력 변수들을 scaling할 경우 계수는 “x가 1 표준편차만큼 증가/감소하면 y가 계수만큼 증가/감소한다”를 의미하기 때문입니다. 하지만, 머신러닝/딥러닝을 학습하는 관점에서 둘 중에 어떤 것이 더 나은가를 단언하기는 어렵습니다. 왜냐하면 (무책임한 소리 같이 들리겠지만) 경우에 따라 다르기 때문입니다(즉, case by case). 어떤 경우에는 정규화를 해줬을 때 더 좋은 성능을 낼 수 있고, 어떤 경우에는 표준화를 해줬을 때 더 좋은 성능을 낼 수 있습니다. 따라서, 두 방법을 모두 사용해 본 뒤 어느 것이 더 나은지 비교해 봐야 합니다. 하지만 분명한 것은 정규화 또는 표준화를 해준 데이터로 학습시키는 것과 하지 않은 데이터로 학습시키는 것의 차이는 매우 크다는 것입니다.  

반응형