Normalization은 데이터셋의 값을 표준화하여 더 효율적인 분석을 가능하게 하는 데이터 전처리 기법입니다. 일반적으로 정규화는 모든 feature의 값을 0과 1 사이로 조정하는 것을 말합니다. 데이터 분석에서는 일반적으로 다른 feature들과 크기나 단위가 다른 feature이 있을 경우, 그 값들이 분석에 미치는 영향력이 커지고 정확한 예측이 어려울 수 있습니다. 이러한 문제를 해결하기 위해 normalization을 사용합니다.
Normalization의 장점
- 데이터 분포를 표준화하여 데이터 분석에서 좀 더 안정적인 결과를 얻을 수 있습니다.
- 서로 다른 scale을 가진 feature들을 비교할 수 있습니다.
- Outlier의 영향을 줄일 수 있습니다.
- 학습 시 더 빠르게 수렴할 수 있습니다.
normalization의 단점
- 일부 feature 값들이 극단적으로 작거나 큰 경우 normalization을 하면 데이터의 분포가 크게 바뀌어 원래 데이터의 의미를 잃을 수 있습니다. 원데이터 값을 normalization이전으로 복원하여 메세지를 재 해석해야하는 작업이 발생할 수 있습니다.
- 데이터가 이미 normalization되어 있는데 normalization 재처리 시, 오히려 정보가 손실될 수 있습니다.
- Normalization의 방법에 따라 결과가 달라질 수 있습니다.
따라서 normalization을 적용하기 전에 데이터 분포를 살펴보고, normalization 방법을 선택할 때 각 feature의 특성을 고려하는 것이 중요합니다.
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
'머신러닝' 카테고리의 다른 글
나이브 베이즈 (naïve bayes) (0) | 2023.03.28 |
---|---|
파이썬 라이브러리를 활용한 머신러닝 (1/3) (3) | 2023.03.24 |
앙상블 기법(Ensemble Technique) (0) | 2023.03.23 |
과대적합(Overfitting)과 과소적합(Underfitting) (0) | 2023.03.20 |
머신러닝의 분류 (taxonomy of Machine learning) (0) | 2023.03.16 |