Blog/데이터 정규화 완벽 가이드

guide

데이터 정규화 완벽 가이드

어떤 모델이든 그 전에 반드시 잡아야 할 피처 스케일링

SK

Skari Team

Skari

2026년 7월·12분

피처 스케일링

스케일링 전에는 한 변수가 다른 변수를 압도하지만, 스케일링 후에는 각 변수가 동등한 발언권을 갖습니다.

전 — 원본 범위

소득
0–150k
나이
0–70

후 — 스케일 [0,1]

소득
0–1
나이
0–1

회귀, 신경망, PCA, 군집 알고리즘 등 거의 모든 모델을 학습하기 전에, 결과가 말이 되는지를 좌우하는 단계가 하나 있습니다. 바로 정규화입니다.

한 변수는 0~1인데 다른 변수가 0~100,000이라면, 큰 쪽이 지배합니다. 거리 계산을 압도하고, 규제 회귀의 페널티 항을 뒤흔들며, 손실 표면을 왜곡해 경사하강을 느리게 만듭니다. 결국 모델은 데이터 전체가 아니라 한 변수만 반영하게 됩니다.

Note

정규화(피처 스케일링)는 모든 변수를 비교 가능한 척도로 맞춰 각 변수가 공정하게 기여하도록 합니다. 거리 기반 방법(K-Means, KNN), 규제·경사 기반 모델(Ridge/Lasso, 로지스틱 회귀, 신경망, SVM), 그리고 PCA 같은 투영에서 모두 중요합니다.

왜 스케일이 중요한가

알고리즘마다 스케일에 민감한 이유는 제각각이지만, 결국 전부 민감합니다.

  • 거리 방법(K-Means, KNN): 범위가 큰 변수가 모든 거리를 지배
  • 규제 회귀(Ridge, Lasso): L1/L2 페널티가 스케일이 큰 계수를 불공정하게 처벌
  • 경사하강(신경망, 로지스틱 회귀): 스케일이 안 맞으면 손실 표면이 한쪽으로 늘어나 학습이 느리고 불안정
  • PCA: 성분이 가장 의미 있는 변수가 아니라 분산이 가장 큰 변수를 따라감

구체적인 예시

두 변수를 생각해 봅시다. 연소득(2,000만~1억 5,000만 원)과 나이(20~70세). "소득 10,000 차이"가 "나이 1년 차이"보다 10,000배 크게 반영되므로, 모델은 나이를 거의 보지 못합니다.

  • 두 레코드의 소득 차이: 보통 수천만 원 단위
  • 나이 차이: 많아야 약 50
  • 어떤 알고리즘이든, 둘 다 스케일링하기 전까지 소득이 나이를 덮어버립니다

두 변수를 비슷한 범위로 스케일링하면 나이와 소득이 동등한 영향력을 갖습니다. 군집이든 회귀든 차원 축소든, 대개 우리가 원하는 바로 그 상태입니다.

Min-Max 스케일링

Min-Max는 모든 값을 고정 범위, 보통 [0, 1]로 다시 조정합니다.

x' = (x - min) / (max - min)
  • 출력이 0~1로 제한되어 예측 가능하고 다루기 쉬움
  • 원래 분포의 형태를 보존
  • 이상치에 매우 민감: 극단값 하나가 나머지를 0 쪽으로 압축

Tip

심한 이상치가 없고 유계 값이 필요할 때(예: 신경망 입력) Min-Max를 사용하세요.

Z-Score 표준화

표준화는 각 변수를 평균 0, 표준편차 1로 중심화합니다.

z = (x - μ) / σ
  • 고정 범위가 없고, 값은 보통 약 −3에서 +3 사이
  • 변수가 대략 정규분포를 따를 때 잘 동작
  • Min-Max보다 이상치에 덜 민감하지만 여전히 영향을 받음

Tip

데이터가 대략 종 모양일 때, Z-Score 표준화는 K-Means와 PCA의 안전한 기본값입니다.

Robust 스케일링

Robust 스케일링은 평균·표준편차 대신 중앙값사분위 범위(IQR)를 사용하므로 극단값의 영향을 거의 받지 않습니다.

x' = (x - median) / IQR
  • 설계상 이상치에 강함
  • 데이터에 두꺼운 꼬리나 극단값이 있을 때 최적
  • 출력을 고정 범위로 제한하지는 않음

어떤 방법을 써야 할까

방법범위이상치 안전적합한 상황
Min-Max0 ~ 1아니오유계 입력, 신경망, 깨끗한 데이터
Z-Score≈ −3 ~ 3부분적정규에 가까운 데이터, 회귀, PCA, K-Means
Robust무계두꺼운 꼬리, 이상치 많음

흔한 실수

Watch out

가장 흔한 실수: 학습/테스트로 나누기 전에 전체 데이터를 스케일링하는 것. 이는 테스트 정보를 학습에 누수시킵니다. 스케일러는 학습 데이터에만 적합(fit)시키고, 그 스케일러를 테스트에 적용하세요.

체크리스트

  • 먼저 분할한 뒤, 스케일러는 학습 세트에만 fit
  • 동일하게 적합된 스케일러를 검증·테스트 데이터에 적용
  • 이상치 재확인 — 어떤 방법이 적절한지가 바뀝니다
  • 원-핫 인코딩되었거나 범주형인 변수는 스케일링하지 않기

SKARI 데이터 편집기의 정규화

스케일링 코드를 짤 필요가 없습니다. SKARI의 데이터 편집기에서 숫자형 컬럼을 하나 이상 선택하고 변환(Transform), 즉 Z-Score 표준화나 Min-Max 정규화를 클릭 한 번으로 적용하면 됩니다.

  • 컬럼 변환: Z-Score, Min-Max, 그리고 log, log10, sqrt, square, abs
  • 이상치 처리(Z-Score 또는 IQR)와 결측치 대치를 같은 편집기에서 함께 수행
  • 모든 단계가 파이프라인 이력에 기록되어, 전처리가 재현 가능하고 감사하기 쉬움

Tip

정규화가 분석 이전 단계인 데이터 편집기에 있기 때문에, 스케일링된 같은 데이터가 회귀, 군집, PCA, 설문 모델 등 이후 모든 도구로 그대로 이어집니다.

Takeaway

보통은 세심한 스크립팅이 필요한 작업이 클릭 몇 번으로 끝나고, 파이프라인 로그 덕분에 다음에도 정확히 재현할 수 있습니다.

자주 묻는 질문

항상 정규화해야 하나요?

거리 기반이나 경사 기반 방법(K-Means, KNN, PCA, 신경망)이라면 반드시 해야 합니다. 반면 랜덤 포레스트, XGBoost 같은 트리 기반 모델은 스케일에 영향을 받지 않아 필요하지 않습니다.

기본값으로 Min-Max와 Z-Score 중 무엇?

회귀, PCA, K-Means 등 대부분의 모델은 Z-Score 표준화로 시작하세요. 유계 입력이 필요하면(예: 신경망) Min-Max를, 이상치가 지배하면 Robust 스케일링을 쓰면 됩니다.

정규화하면 이상치가 사라지나요?

아니요. 다시 스케일링할 뿐입니다. 영향을 줄이려면 Robust 스케일링을 쓰거나 이상치를 먼저 명시적으로 처리하세요.

결론

정규화는 잘 만든 모델 대부분이 소리 없이 깔고 가는 전제 조건입니다. 데이터에 방법을 맞추세요. 분포가 안정적인 변수엔 Z-Score, 이상치가 지배하면 Robust, 유계 입력이 필요하면 Min-Max입니다.

Takeaway

스케일링을 제대로 하면 회귀와 군집, PCA 등 여러 모델이 한꺼번에 제대로 돌아가기 시작합니다. 마침내 모든 변수가 동등한 영향력을 갖기 때문입니다.

군집분석 완벽 가이드

K-Means, DBSCAN, SOM을 기초 원리부터

고급 군집분석 기법

앙상블 클러스터링과 다층 분석 기법

SKARI로 시작하기

첫 군집분석 프로젝트를 5분 안에 완성