78. 데이터 스케일링 (Data Scaling) - 정규화와 표준화

⚠️ 이 문서는 인공지능(AI) 모델에 데이터를 쑤셔 넣을 때, 어떤 컬럼은 고객의 '나이(20~60)'로 단위가 작고, 옆 컬럼은 '연봉(3,000만~1억)'으로 단위가 미친 듯이 커서, **AI가 멍청하게 "숫자 크기가 큰 연봉 변수가 나이보다 100만 배 더 중요한 황금 데이터인가 보다!"라고 착각해 버리는 대참사를 막기 위해, 모든 엑셀 컬럼의 덩치(단위)를 공평하게 $0 \sim 1$ 사이나 평균 $0$ 근처로 평등하게 짓눌러 압축해 버리는 필수 뇌 수술 전처리 작업인 '데이터 스케일링 (정규화 vs 표준화)'**을 다룹니다.

핵심 인사이트 (3줄 요약)

  1. 본질: 데이터의 고유한 형태(분포 모양)나 상대적 서열은 1%도 파괴하지 않고, 엑셀의 모든 숫자를 돋보기로 확 축소시켜서 '단위(Scale)'라는 계급장을 떼버리는 평등화 작업이다.
  2. 가치: K-NN이나 SVM처럼 점과 점 사이의 '거리(Distance)'를 자로 재서 계산하는 AI 알고리즘들은 스케일링을 안 해주면 무조건 연봉(큰 숫자)에만 끌려다니는 바보가 된다. 스케일링 후에는 학습 속도(경사 하강법)가 수십 배 빨라지고 예측 정확도가 미친 듯이 폭발한다.
  3. 기술 체계: 데이터의 최솟값을 0, 최댓값을 1로 무식하게 욱여넣는 **정규화(Min-Max Normalization)**와, 데이터의 평균을 0, 표준편차를 1로 만들어 종 모양의 중심에 꽂아버리는 표준화(Z-Score Standardization) 두 가지 무기가 상황에 따라 번갈아 쓰인다.

Ⅰ. 스케일링의 필요성: 덩치 큰 숫자가 깡패가 되는 AI의 맹점

AI는 cm와 km를 구별할 지능이 없다. 오직 숫자의 크기만 믿는다.

  1. 스케일(Scale)의 불균형의 비극:
    • 아파트 가격을 예측하는 AI를 만든다. 엑셀 1열은 방 개수(1~5개), 2열은 평수(10~50평), 3열은 지하철역까지 거리(1,000~5,000m) 다.
    • K-NN 알고리즘(거리 기반 탐지기)이 이 3개의 숫자를 받아 수학적으로 뺀 다음 거리를 잰다.
    • 방 개수가 1개 늘어나도 숫자 1이 커졌을 뿐이지만, 지하철역 거리가 1km 멀어지면 숫자 1,000이 커진다.
    • AI는 "우와! 1,000이나 변했어! 방 개수 1개 따위는 무시해! 집값은 무조건 '지하철 거리'라는 변수가 99.9% 지배하는구나!" 라고 가중치를 미친 듯이 쏠리게 매겨버리는 편향(Bias) 폭발 사고가 터진다.
  2. 해결책: 계급장 떼고 붙어라 (Scaling):
    • 데이터 엔지니어는 AI에 데이터를 붓기 직전에 마법의 프레스(스케일러)를 켠다.
    • 방 개수 1~5 도 억지로 쪼그라뜨려 0.0 ~ 1.0 사이의 소수점으로 만든다.
    • 지하철 거리 1,000~5,000 도 거대한 압축기로 밟아버려 0.0 ~ 1.0 사이의 똑같은 소수점으로 압축한다.
    • 이제 AI는 세 변수를 "완벽하게 공평한 발언권(가중치)"을 가진 상태에서 편견 없이 객관적으로 학습하게 되며, 학습 속도(Gradient Descent)가 수렁에 빠지지 않고 빛의 속도로 정답을 찾아 수렴(Convergence)하게 된다.

📢 섹션 요약 비유: 체급이 완전 다른 권투 선수 3명(5kg, 50kg, 5000kg)을 똑같은 링에 올리면 무조건 5000kg짜리 뚱땡이(큰 숫자 컬럼)가 1초 만에 나머지 둘을 짓밟고 경기를 끝내버립니다. 스케일링(Scaling)은 이 세 선수를 마법의 레이저로 쏴서 전부 완벽하게 똑같은 '70kg 미들급 체형(0~1 사이의 숫자)'으로 강제 변환시킨 뒤 링에 올리는 것입니다. 덩치의 차이(단위)는 0이 되고, 오직 순수한 복싱 기술(데이터 본연의 패턴)만으로 공평하게 승부를 겨루게 만드는 심판의 룰입니다.


Ⅱ. 정규화 (Normalization / Min-Max Scaler): 0과 1의 박스

최솟값은 0, 최댓값은 1. 세상 모든 데이터를 네모난 상자 안에 가둔다.

  1. Min-Max 공식의 작동 원리:
    • $X_{\text{scaled}} = \frac{X - X_{\text{min}}}{X_{\text{max}} - X_{\text{min}}}$
    • 학생 100명의 시험 점수가 있다. 꼴등이 40점, 1등이 90점이다.
    • 꼴등(40점)을 공식에 넣으면 분자가 0이 되어 완벽한 **0.0**이 된다.
    • 1등(90점)을 넣으면 분자 분모가 같아져 완벽한 **1.0**이 된다.
    • 중간에 있는 65점짜리 학생은 정확히 **0.5**라는 숫자로 변환된다.
  2. 장점과 치명적 단점 (워렌 버핏의 테러):
    • 장점: 모든 데이터가 예쁘게 $0 \sim 1$ 사이의 완벽한 박스 안에 들어온다. 이미지 픽셀 데이터(0~255)를 다룰 때(딥러닝 CNN) 무조건 쓰는 황금 룰이다.
    • 단점 (이상치에 극도로 취약): 99명의 월급이 200만 원인데, 1등 1명이 100억을 버는 재벌(이상치)이다 치자. Min-Max 스케일러를 돌리면 100억 재벌이 1.0을 차지해버린다. 그 결과, 월급 200만 원과 250만 원의 차이는 0.00010.0002라는 쥐똥만 한 차이로 먼지처럼 짓눌려버려 AI가 구별을 못 하는 먹통이 되어버린다.

📢 섹션 요약 비유: Min-Max 정규화는 100명의 학생을 작은 사과 상자(0~1) 안에 강제로 밀어 넣는 압축기입니다. 꼴등은 상자 맨 왼쪽 바닥(0)에 닿게 하고, 1등은 상자 뚜껑(1)에 닿게 누릅니다. 만약 키가 10m인 진격의 거인(이상치) 1명이 섞여 있으면, 기계는 10m에 맞춰서 상자 뚜껑을 잡고 확 눌러버립니다. 10m 거인은 뚜껑(1)에 닿지만, 나머지 99명의 평범한 170cm 학생들은 기계에 짓눌려 바닥(0.001)에 찰싹 붙은 껌딱지 신세가 되어 서로 키 차이를 아예 구별할 수 없게 뭉개지는 끔찍한 압사 사고가 발생합니다.


Ⅲ. 표준화 (Standardization / Z-Score): 중심 잡기와 돌연변이 방어

평균은 무조건 0, 표준편차는 1. 데이터의 무게 중심을 원점으로 끌고 온다.

  1. Z-Score 공식의 작동 원리 (Standard Scaler):
    • 며칠 전 배운 Z-Score 공식을 엑셀 데이터 전체 컬럼에 융단폭격으로 때려 넣는다.
    • $X_{\text{scaled}} = \frac{X - \text{평균}}{\text{표준편차}}$
    • 이 짓을 하면, 원래 평균이 1,000만 원이든 5점이든 상관없이, 바뀐 가짜 데이터들의 **평균은 완벽하게 0.0**이 되고, 데이터가 흩어진 정도(**표준편차)는 완벽하게 1.0**으로 통일되어 그래프의 원점(0,0) 정가운데에 종 모양으로 예쁘게 꽂히게 된다.
  2. Min-Max를 씹어먹는 장점 (이상치 방어력):
    • 100억 버는 재벌(이상치)이 껴있어도 두렵지 않다.
    • 표준화는 $0$과 $1$이라는 네모 박스 뚜껑을 강제로 덮지 않는다. 재벌의 Z-점수는 +15.5처럼 우주 바깥으로 날아가게 쿨하게 냅둔다.
    • 덕분에 상자가 짓눌리지 않아서, 나머지 평범한 200만 원 직장인(-0.1)과 250만 원 직장인(+0.1)의 미세한 월급 차이(분포 뼈대)가 뭉개지지 않고 안전하게 보존된다.
  3. 실무 결단: 언제 무엇을 쓸 것인가?:
    • 이미지 픽셀 쪼가리 딥러닝(CNN) $\rightarrow$ 무조건 $0 \sim 1$로 깎는 Min-Max 정규화.
    • K-NN, SVM, 로지스틱 회귀, PCA 등 거리를 계산하는 머신러닝에 미친 듯이 튀는 데이터(Outlier)가 섞여 있을 때 $\rightarrow$ 무조건 평균을 0으로 맞추는 **Z-Score 표준화(Standardization)**를 써야 모델이 타죽지 않고 똑똑해진다.

📢 섹션 요약 비유: Z-Score 표준화(Standard Scaler)는 키 10m짜리 거인(이상치)이 와도 억지로 상자 뚜껑을 닫아 뭉개지(Min-Max) 않습니다. 그냥 평균 키(170cm)를 가진 학생을 영점(0점) 위치에 세워두고, 거인은 "너는 평균보다 엄청 크니까 저 멀리 +15m 위치에 가 있어!"라고 멀리 던져버립니다(뚜껑 없음). 덕분에 평범한 170cm, 172cm 학생들은 짓눌리지 않고 원점(0) 근처에서 자기들끼리의 미세한 키 차이(데이터의 분산과 개성)를 예쁘게 온전히 유지할 수 있는 융통성 있고 강력한 스케일링 기법입니다.