정규화(Normalization)

Date:     Updated:

카테고리:

태그:

AI-Interview AI-TECH-INTERVIEW의 내용을 정리한 것입니다✏️.

정규화(Normalization)의 필요성 및 방법

정규화는 데이터의 크기를 일정한 범위로 변환하는 과정으로, 머신러닝 모델에서 중요한 역할을 한다.
주로 피처들의 값의 범위가 크게 차이날 때 모델 성능을 개선하기 위해 사용한다.

정규화가 필요한 이유

1. 피처 스케일 차이 문제

피처들 간의 값의 범위가 크게 다르면, 값이 큰 피처가 모델 학습에 과도하게 영향을 미칠 수 있다. 예를 들어, ‘나이’는 0에서 100까지의 범위를 가질 수 있고, ‘소득’은 1,000,000에서 100,000,000까지의 범위를 가질 수 있다. 이 경우, ‘소득’ 피처가 모델에 더 큰 영향을 미치게 된다. 이러한 문제를 해결하려면 정규화가 필요하다.

2. 알고리즘에 따른 필요성

  • 경사하강법을 사용하는 알고리즘(예: 선형 회귀, 신경망)은 피처들이 동일한 스케일을 가질 때 더 효과적으로 작동한다.
  • KNN, SVM과 같은 거리 기반 알고리즘도 각 피처의 범위가 비슷할 때 더 정확한 예측을 한다.

따라서 모든 피처의 크기를 동일하게 맞추어주는 작업이 중요하다.

정규화 방법

정규화에는 여러 가지 방법이 있으며, 대표적인 방법으로는 최소-최대 정규화, Z-점수 정규화, 로그 변환, 로버스트 스케일링 등이 있다.

1. 최소-최대 정규화 (Min-Max Normalization)

최소-최대 정규화는 피처 값의 범위를 0에서 1 사이로 변환하는 방법이다.

\[x_{\text{normalized}} = \frac{x - \min(x)}{\max(x) - \min(x)}\]

이 방법은 값이 크거나 작은 범위에 영향을 주지 않으며, 데이터의 분포 형태를 유지한다. 그러나 이상치에 민감할 수 있다.

2. Z-점수 정규화 (Z-Score Normalization)

Z-점수 정규화는 각 피처 값에서 평균을 빼고 표준편차로 나누는 방법이다. 이 방법은 데이터의 평균을 0, 표준편차를 1로 맞춘다.

\[x_{\text{normalized}} = \frac{x - \text{mean}(x)}{\text{std}(x)}\]

이 방법은 이상치에 더 강건하며, 정규 분포를 따르는 데이터에서 유리하다.

3. 로그 변환 (Log Transformation)

로그 변환은 데이터의 분포가 한쪽으로 치우쳐 있을 때 유용하며, 값의 크기를 줄여주어 데이터의 분포를 더 균등하게 만든다. 주로 지수적으로 증가하는 데이터에서 사용된다.

\[x_{\text{normalized}} = \log(x + 1)\]

4. 로버스트 스케일러 (Robust Scaler)

로버스트 스케일러는 중앙값(median)사분위수 범위(IQR)를 사용하여 이상치의 영향을 줄여주는 방법이다.
이 방법은 이상치에 강한 특성을 가지고 있어, 데이터에 이상치가 많은 경우 유용하다.

언제 정규화를 해야 할까?

정규화는 모든 머신러닝 모델에 필요한 것이 아니다.
특히 트리 기반 모델(예: 의사결정나무, 랜덤 포레스트 등)에서는 정규화가 필요하지 않지만
거리 기반 모델(예: KNN, K-means, SVM 등)이나 경사하강법을 사용하는 모델에서는 정규화가 성능을 향상시킬 수 있다.

맨 위로 이동하기

Terminology 카테고리 내 다른 글 보러가기

댓글남기기