머신러닝

정규화 (Normalization)

데이터_박과장 2023. 3. 21. 22:19

Normalization은 데이터셋의 값을 표준화하여 더 효율적인 분석을 가능하게 하는 데이터 전처리 기법입니다. 일반적으로 정규화는 모든 feature의 값을 0과 1 사이로 조정하는 것을 말합니다. 데이터 분석에서는 일반적으로 다른 feature들과 크기나 단위가 다른 feature이 있을 경우, 그 값들이 분석에 미치는 영향력이 커지고 정확한 예측이 어려울 수 있습니다. 이러한 문제를 해결하기 위해 normalization을 사용합니다.

 

Min-Max Normalization



Normalization의 장점

 

  • 데이터 분포를 표준화하여 데이터 분석에서 좀 더 안정적인 결과를 얻을 수 있습니다.
  • 서로 다른 scale을 가진 feature들을 비교할 수 있습니다.
  • Outlier의 영향을 줄일 수 있습니다.
  • 학습 시 더 빠르게 수렴할 수 있습니다.

 

 

normalization의 단점

 

  • 일부 feature 값들이 극단적으로 작거나 큰 경우 normalization을 하면 데이터의 분포가 크게 바뀌어 원래 데이터의 의미를 잃을 수 있습니다. 원데이터 값을 normalization이전으로 복원하여 메세지를 재 해석해야하는 작업이 발생할 수 있습니다.
  • 데이터가 이미 normalization되어 있는데 normalization 재처리 시, 오히려 정보가 손실될 수 있습니다.
  • Normalization의 방법에 따라 결과가 달라질 수 있습니다.

 

 

따라서 normalization을 적용하기 전에 데이터 분포를 살펴보고, normalization 방법을 선택할 때 각 feature의 특성을 고려하는 것이 중요합니다.

 

Z-score Normalization

 

normalization의 종류 

 

  • Min-Max Normalization
    Min-Max Normalization은 데이터의 최솟값을 0, 최댓값을 1로 조정하는 방법입니다. 이 방법은 데이터가 0과 1 사이의 범위 내에 분포하도록 하여, 데이터 분포의 형태가 유지되는 동시에 scale을 조정합니다. 다음은 Min-Max Normalization의 수식입니다.
    x_norm = (x - min(x)) / (max(x) - min(x))

 

  • Z-score Normalization
    Z-score Normalization은 데이터가 평균을 기준으로 얼마나 떨어져 있는지를 표준편차의 단위로 표시하는 방법입니다. 이 방법은 데이터가 정규분포를 따른다는 가정이 있을 때 가장 효과적입니다. 다음은 Z-score Normalization의 수식입니다.
    x_norm = (x - mean(x)) / std(x)

 

  • Decimal Scaling Normalization
    Decimal Scaling Normalization은 Min-Max Normalization과 유사한 방법입니다. 하지만 Min-Max Normalization처럼 최소값과 최대값을 사용하지 않고, 가장 큰 자릿수를 10의 거듭제곱으로 나누어 scale을 맞추는 방법입니다. 이 방법은 scale이 어떤 범위에 있는지에 상관없이 적용할 수 있습니다. 다음은 Decimal Scaling Normalization의 수식입니다.
    x_norm = x / 10^j, where j = ceil(log10(max(abs(x))))

 

  • Log Transformation
    Log Transformation은 데이터의 값에 로그 함수를 취하여 scale을 조정하는 방법입니다. 이 방법은 데이터가 positive skewed한 경우 적용할 수 있습니다. 다음은 Log Transformation의 수식입니다.
    x_norm = log(x)

 

  • Power Transformation
    Power Transformation은 데이터에 제곱근, 세제곱근 등의 함수를 취하여 scale을 조정하는 방법입니다. 이 방법은 Log Transformation과 유사하게 skewed 데이터를 normalize하는 데 효과적입니다. 다음은 Power Transformation의 수식입니다.   x_norm = x^p, where p is a constant