[데이터 엔지니어링] 데이터 정규화(Normalization) : 비교 가능한 데이터를 만드는 방법

1. 서론 : 왜 데이터 정규화가 필요한가?

데이터는 다양한 스케일과 단위를 가진다. (예 : 환율(1,000단위), Google Trends 지수 (0~100), 예산(만원), 온도(섭씨) 등)

이러한 이질적인 데이터들은 단순히 합치거나 비교하면 스케일이 큰 데이터(예: 항공권 가격)가 스케일이 작은 데이터(예: 트렌드 지수)의 영향력을 압도하여 잘못된 분석 결과를 초래할 수 있다.

데이터 정규화는 이러한 다양한 스케일의 데이터를 ‘동일한 기준’으로 변환하여, 서로 공정하게 비교하고 분석할 수 있도록 만드는 필수적인 과정이다

2. 데이터 정규화의 종류와 원리

주로 데이터 스케일링(Data Scaling) 기법으로서의 정규화를 다룰 것이다.

Min-Max 정규화 (Min-Max Scaling / Normalization)

  • 데이터를 0 과 1 (또는 특정 범위, 예 : 0~100)사이의 값으로 변환합니다. 데이터 셋 내의 최소값(X_min) 과 최대값 (X_max)을 기준으로 한다.
  • 공식 : X_normalized = (X-X_min) / (X_max - X_min)
  • 데이터를 가장 작은 값은 0으로, 가장 큰 값은 1로, 그 사이의 값들은 비례적으로 변환한다.
  • 장점 : 데이터의 범위가 명확해지고, 직관적이다.
  • 단점 : 이상치(Outlier)에 매우 민감한다. (만약 이상치가 있으면, 대부분의 데이터가 좁은 범위에 뭉쳐 보인다.)
  • 활용 예시 : ‘여행 매력도 점수’ 에서 환율, 예산, 항공권 가격 등을 점수화 할 때 (낮을수록 좋거나, 높을수록 좋은 경우)