회귀, 신경망, PCA, 군집 알고리즘 등 거의 모든 모델을 학습하기 전에, 결과가 말이 되는지를 좌우하는 단계가 하나 있습니다. 바로 정규화입니다.
한 변수는 0~1인데 다른 변수가 0~100,000이라면, 큰 쪽이 지배합니다. 거리 계산을 압도하고, 규제 회귀의 페널티 항을 뒤흔들며, 손실 표면을 왜곡해 경사하강을 느리게 만듭니다. 결국 모델은 데이터 전체가 아니라 한 변수만 반영하게 됩니다.
Note
왜 스케일이 중요한가
알고리즘마다 스케일에 민감한 이유는 제각각이지만, 결국 전부 민감합니다.
- 거리 방법(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
Z-Score 표준화
표준화는 각 변수를 평균 0, 표준편차 1로 중심화합니다.
z = (x - μ) / σ
- 고정 범위가 없고, 값은 보통 약 −3에서 +3 사이
- 변수가 대략 정규분포를 따를 때 잘 동작
- Min-Max보다 이상치에 덜 민감하지만 여전히 영향을 받음
Tip
Robust 스케일링
Robust 스케일링은 평균·표준편차 대신 중앙값과 사분위 범위(IQR)를 사용하므로 극단값의 영향을 거의 받지 않습니다.
x' = (x - median) / IQR
- 설계상 이상치에 강함
- 데이터에 두꺼운 꼬리나 극단값이 있을 때 최적
- 출력을 고정 범위로 제한하지는 않음
어떤 방법을 써야 할까
| 방법 | 범위 | 이상치 안전 | 적합한 상황 |
|---|---|---|---|
| Min-Max | 0 ~ 1 | 아니오 | 유계 입력, 신경망, 깨끗한 데이터 |
| Z-Score | ≈ −3 ~ 3 | 부분적 | 정규에 가까운 데이터, 회귀, PCA, K-Means |
| Robust | 무계 | 예 | 두꺼운 꼬리, 이상치 많음 |
흔한 실수
Watch out
체크리스트
- 먼저 분할한 뒤, 스케일러는 학습 세트에만 fit
- 동일하게 적합된 스케일러를 검증·테스트 데이터에 적용
- 이상치 재확인 — 어떤 방법이 적절한지가 바뀝니다
- 원-핫 인코딩되었거나 범주형인 변수는 스케일링하지 않기
SKARI 데이터 편집기의 정규화
스케일링 코드를 짤 필요가 없습니다. SKARI의 데이터 편집기에서 숫자형 컬럼을 하나 이상 선택하고 변환(Transform), 즉 Z-Score 표준화나 Min-Max 정규화를 클릭 한 번으로 적용하면 됩니다.
- 컬럼 변환: Z-Score, Min-Max, 그리고 log, log10, sqrt, square, abs
- 이상치 처리(Z-Score 또는 IQR)와 결측치 대치를 같은 편집기에서 함께 수행
- 모든 단계가 파이프라인 이력에 기록되어, 전처리가 재현 가능하고 감사하기 쉬움
Tip
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
군집분석 완벽 가이드
K-Means, DBSCAN, SOM을 기초 원리부터
고급 군집분석 기법
앙상블 클러스터링과 다층 분석 기법
SKARI로 시작하기
첫 군집분석 프로젝트를 5분 안에 완성