[DATA] 4. 데이터 노멀라이즈

예를들어 어떤 회사의 고객들이 다음과 같은 3개의 특징값 데이터가 존재한다고 해보자.

  • A feature는 0~1 범위
  • B feature는 0~10,000 범위
  • C feature는 음수까지 포함

특정 feature에 대해서 고객들의 우열을 가리는 것은 쉽지만 한 고객에 대해서 A, B, C 3개의 feature 중 어떤 feature가 더 중요한 값을 갖는 지를 판단한는 것은 쉽지 않다. 왜냐하면 각 feature들이 가질 수 있는 값의 범위가 다르고 또, 고객들이 갖게 되는 값의 분포도 feature마다 다르기 때문이다.

이런 이유 때문에 feature간에 비교가능한 숫자로 변환을 해주어야 하는데 이를 노멀라이즈라고 한다.


1. 노멀라이즈란 무엇인가?

노멀라이즈는 다시 말해:

서로 다른 스케일의 데이터를 비교 가능하게 맞추는 과정

이다.

하지만 실무에서는 단순한 “스케일 맞추기”가 아니라,

데이터의 구조를 어떻게 보존할 것인가에 대한 선택

에 가깝다.


2. 가장 기본적인 방법 4가지

2-1. Min-Max Normalization

x' = (x - max) / (max - min)

max : 최대값, min : 최소값

가장 직관적인 방식이다.
모든 값을 0~1 범위로 압축한다.

특징

  • 구현이 간단하다
  • 딥러닝에서 자주 사용된다

한계

  • 이상치(outlier)에 매우 취약하다

예를 들어 대부분이 100~200인데 하나가 10,000이면
전체 데이터가 거의 0 근처로 눌린다.


2-2. Z-score Standardization

x' = (x - avg) / std

avg : 평균, std : 표준편차

원래값이 평균이면 0, 표준편차이면 1이 된다.

즉, 0이면 평균이고, 1에 가까울 수록 표준편차에 가깝다는 얘기.

특징

  • 데이터의 분포를 유지한다
  • 대부분의 머신러닝 모델에서 기본값처럼 사용된다

의미

“이 값이 평균에서 얼마나 떨어져 있는가”를 표현한다

한계

  • 원점수의 분포가 정규분포에 가까운 형태일 때만 의미가 있다
  • 아웃라이어가 많은 경우 표준편차가 커지게 되는데 이 경우 점수의 변화정도가 상대적으로 작아져 왠만한 아웃라이어가 오히려 정상으로 오해받을 수 있다

2-3. Robust Scaling

x' = (x - Q2) / (Q3 - Q1)

Q1 : 25% 분위수
Q2 : 50% 분위수(중앙값)
Q3 : 75%분위수

특징

  • 이상치의 영향을 거의 받지 않는다

언제 쓰나

  • 구매 금액
  • 방문 횟수
  • 금융 데이터

현실 데이터는 대부분 정규분포가 아니라 heavy-tail이므로 오히려 현실데이터에 잘 맞을 수 있다.

3. 핵심 정리

노멀라이즈는 단순한 전처리가 아니다.

👉 모델이 데이터를 해석하는 방식 자체를 정의하는 과정이다.

  • Min-Max → 범위 맞추기
  • Z-score → 분포 기준 정렬
  • Robust → 이상치 무시