[Data Science] Data Preprocessing - 데이터 정규화 (Min-Max, Z-Score)

ByungJik_Oh·2025년 4월 2일

[Hyundai Rotem KDT]

목록 보기
8/22
post-thumbnail

📚 데이터 정규화 (Data Normalization)

정규화는 왜 해야할까?

  • 특성(Feature) 스케일 조정 : 서로 다른 스케일을 가진 특성들이 있을 경우, 학습 알고리즘은 스케일이 큰 특성에 더 많은 중요도를 부여할 수 있다. 정규화를 통해 모든 특성을 동일한 스케일로 조정함으로써 이러한 불균형을 해소할 수 있다.

  • 학습 속도 향상 : 정규화된 데이터는 그렇지 않은 데이터에 비해 학습 알고리즘의 수렴 속도를 빠르게 할 수 있다. 이는 경사 하강법(Gradient Descent)과 같은 최적화 알고리즘에서 특히 중요하다.

  • 과적합 방지 : 정규화는 모델이 특정 특성에 지나치게 의존하는 것을 방지하여 과적합을 줄일 수 있다. 이는 특히 높은 차원의 데이터에서 중요하다.

  • 수치 안정성 : 매우 높거나 낮은 값들을 포함하는 데이터는 계산 상의 문제를 일으킬 수 있다. 정규화를 통해 이러한 수치를 더 안정적인 범위로 조정할 수 있다.

  • 거리 기반 알고리즘의 효율성 : K-최근접 이웃(K-NN), K-평균(K-Means)과 같은 거리 기반 알고리즘은 특성 간의 거리 계산에 의존한다. 정규화를 통해 모든 특성이 거리 계산에 공평하게 기여하도록 할 수 있다.

정규화는 데이터의 본질적인 구조를 변경하지 않으면서, 이러한 방식으로 머신러닝 모델의 성능을 향상시킬 수 있다.


📚 Feature scale 예시

Feature scale 조정에 대한 간단한 예를 들어보자.

집에 관한 데이터가 있다고 가정해보자. 데이터 안에는 2가지 feature가 들어있는데 방의 개수(개), 지어진 이후 지난 시간(월)의 정보가 있다고 가정하자. 사람들의 선호도는 방의 개수와 집의 연식으로 결정되는데 이를 그래프로 그려보면 방의 개수(개)보다 지어진 이후 지난시간(월)의 단위가 훨씬 커지게 된다.

더 큰 scale을 가진 feature인 집의 연식에 따라서 전체 데이터의 패턴이 결정되는 결과가 생기게 된다. 방이 1개 있는 집과 방이 20개 있는 집의 차이는 매우 크지만 이 차이가 데이터 상으로는 나타나지 않는다는 의미이다.

그래서 모든 데이터가 동일한 정도의 scale(중요도)로 반영되게 해줄 필요가 있고 이 작업을 하는 것이 바로 정규화(Normalization)라고 생각하면 된다.

위의 데이터를 정규화 방법 중 Min-Max Normalization을 이용하여 변경하면 다음의 그래프를 얻을 수 있다.

Normalization 역시 여러가지 방법이 있다. 하지만 일반적으로 2가지 방법 중 하나를 이용한다.

  • Min-Max Normalization
  • Z-Score Normalization (Standardization)

📚 Min-Max Normalization

Min-Max Normalization?
데이터를 정규화하는 가장 일반화된 방법으로, 모든 feature에 대해 최소값 0, 최대값 1 사이의 값으로 변환시키는 방법이다.

수식으로 표현한다면 다음과 같이 표현할 수 있다.

xscaled=xxminxmaxxminx_{scaled} = \frac{x - x_{min}}{x_{max} - x_{min}}

Min-Max Normalization을 사용할 때는 한가지 주의해야 할 점이 있다.

바로 이상치에 매우 민감하다는 것인데, 기본적으로 최대값과 최소값의 차이로 기본적인 scaling이 되기 때문에 이상치가 있으면 해당 이상치에 너무 많은 영향을 받을 수 있기 때문이다.

그래서 Min-Max Normalization을 수행하려면 반드시 이상치에 대한 전처리를 진행하고 정규화를 진행해야 한다.


📚 Z-Score Normalization (Standardization)

Z-Score Normalization (Standardization)?
Min-Max Normalization에서 문제가 되었던 이상치 문제를 피하는 정규화 방법이다.

데이터를 Z-Score 값으로 변환하는 것인데 다음과 같은 식을 사용한다.

xj=xjμjσjx'_j = \frac{x_j - \mu_j}{\sigma_j}

여기서 xjx_jX를, μj\mu_jX의 평균을, σj\sigma_jX의 표준편차를 나타낸다.

이 방식은 이상치를 잘 처리하지만 Min-Max Normalization처럼 정확히 동일한 척도로 정규화된 데이터를 생성하지는 않는다는 것에 주의해야한다.


profile
精進 "정성을 기울여 노력하고 매진한다"

0개의 댓글