변수 단위가 거리와 규제를 지배하지 않게 만들기
연소득이 원 단위이고 나이가 년 단위라면 KNN의 거리는 사실상 소득 하나로 결정됩니다.
두 사람의 나이가 20년 달라도 소득이 100만 원 차이면 원자료 유클리드 거리에서 나이의 영향은 거의 0입니다. 이는 소득이 더 중요해서가 아니라 숫자 단위가 크기 때문입니다.
스케일링은 변수의 중심과 크기를 바꿔 거리, 내적, 규제와 경사하강이 단위에 지배되지 않게 합니다. 모든 모델에 필요한 것은 아니며 모델 구조와 해석 목적에 따라 선택합니다.
핵심 질문
이 알고리즘은 거리·내적·계수 벌점·경사에 민감하며, 변환 기준은 훈련 데이터에서만 추정했는가?
거리 기반 모형에서는 단위가 큰 변수가 계산을 지배합니다.
훈련 자료의 중심과 산포로 모든 변수를 공통 척도에 놓습니다.
검증·테스트 통계량을 사용하지 않고 훈련 변환을 그대로 적용합니다.
훈련평균을 빼고 훈련 SD로 나누면 훈련 자료의 평균은 0, SD는 1이 됩니다. 값 z=2는 훈련평균보다 2SD 높다는 뜻입니다.
표준화는 순서와 분포 모양을 그대로 유지합니다. 오른쪽으로 긴 변수는 표준화 후에도 오른쪽으로 길며 정규분포가 되는 것은 아닙니다.
표본 SD 정의와 결측 처리에 따라 결과가 달라질 수 있습니다. 검증·테스트·운영 데이터에는 훈련에서 저장한 평균과 SD를 그대로 사용합니다.
훈련 최솟값을 0, 최댓값을 1로 선형 매핑합니다. 신경망 입력 범위를 제한하거나 픽셀처럼 자연 경계가 있는 변수에 유용할 수 있습니다.
최솟값·최댓값은 극단값에 민감합니다. 훈련에 매우 큰 값 하나가 있으면 대부분 관측이 0 근처 좁은 범위에 압축됩니다.
새 값이 훈련 범위를 벗어나면 변환값도 0 미만 또는 1 초과가 됩니다. 무조건 clipping하면 얼마나 범위를 벗어났는지 정보가 사라지므로 모델 요구와 운영정책을 구분합니다.
중앙값을 빼고 IQR로 나눠 중심과 크기를 맞춥니다. 평균·SD보다 극단값에 덜 끌려 유효한 긴 꼬리와 이상치가 있는 자료에서 유용합니다.
변환 후 중앙값은 0이지만 평균 0이나 SD 1을 보장하지 않습니다. IQR이 0인 반올림·희소 변수에서는 계산할 수 없거나 매우 불안정합니다.
강건 스케일링은 극단값을 제거하거나 영향 자체를 없애지 않습니다. KNN 거리에서 1000이라는 극단값은 여전히 멀리 있으며 강건모형·변환·클리핑과 목적이 다릅니다.
트리도 거리 기반 전처리·정규화된 결합모형과 함께 쓰면 간접 영향을 받을 수 있습니다. 모델 이름만이 아니라 전체 파이프라인을 봅니다.
| 모델·방법 | 스케일 영향 | 이유 |
|---|---|---|
| KNN·K-Means | 매우 큼 | 거리로 이웃·군집 결정 |
| SVM·PCA | 큼 | 내적·분산 방향 사용 |
| Ridge·Lasso | 큼 | 계수 크기에 동일 벌점 |
| 신경망·경사하강 | 큼 | 경사 크기·수렴 속도 |
| 선형회귀 OLS | 예측은 동일 가능 | 계수 단위·수치조건 변화 |
| 트리·랜덤포레스트 | 대체로 작음 | 순서와 임계값 분할 |
0/1 더미변수에서 평균을 빼면 대부분의 0이 음의 작은 값으로 바뀌어 희소행렬이 조밀해지고 메모리가 급증할 수 있습니다. sparse 입력을 지원하는 스케일러는 중심화를 생략하기도 합니다.
연속변수를 표준화하고 더미변수는 0/1로 두면 둘의 전형적 크기가 완전히 같지는 않습니다. 규제모형에서는 범주 빈도와 벌점 의미를 고려하고 필요하면 그룹 규제나 전용 인코딩을 검토합니다.
행 단위 unit norm과 열 단위 표준화는 다릅니다. 텍스트 TF–IDF에서는 문서벡터의 길이를 1로 만드는 행 정규화가 코사인 유사도와 연결됩니다.
표준편차 0인 상수열은 나눗셈이 불가능하고 훈련자료 안에서는 예측정보가 없습니다. 파이프라인에서 제거하거나 0으로 처리하되 운영에서 값이 달라질 가능성을 점검합니다.
거의 상수인 변수는 정보가 적을 수 있지만 사기 플래그·희귀질병처럼 드문 1이 매우 중요할 수 있습니다. 분산 임계값만으로 삭제하지 말고 목표와의 관계, 표본 안정성과 업무 의미를 확인합니다.
교차검증 폴드마다 어떤 범주가 아예 없을 수 있습니다. 변환기는 상수 폴드와 미지 범주를 오류 없이 처리하도록 설계해야 합니다.
x만 표준화하면 회귀계수는 x가 훈련 SD만큼 증가할 때 y가 원단위로 얼마나 변하는지 나타냅니다. 나이 SD가 12년이고 계수가 3이면 12년 증가당 y가 3단위 변합니다.
x와 y를 모두 표준화하면 계수는 표준화 계수여서 변수 간 상대적 크기 비교에 쓰이지만 인과적 중요도나 예측기여도를 자동으로 뜻하지 않습니다. 다중공선성과 변수 분산에 따라 달라집니다.
Ridge·Lasso는 계수 크기에 벌점을 주므로 스케일링하지 않으면 단위가 작은 변수에 더 큰 계수가 필요해 더 강한 벌점을 받습니다. 표준화는 벌점의 공정성을 맞춥니다.
표준화는 이상치를 제거하지 않습니다. 오히려 극단값이 평균과 SD를 동시에 움직여 다른 관측의 z점수를 압축할 수 있습니다.
로그변환은 분포의 간격과 비대칭을 바꾸고, robust scaling은 중심·크기 추정을 강건하게 하며, winsorization은 값을 경계로 바꿉니다. 서로 해결하는 문제가 다릅니다.
훈련과 운영 데이터의 평균·SD·범위가 달라지면 z분포가 이동합니다. 이것은 스케일러 오류가 아니라 데이터 드리프트 신호일 수 있으므로 원단위와 변환값을 모두 모니터링합니다.
스케일러를 모델과 같은 파이프라인 객체로 저장해 열 이름, 순서, 단위, 결측처리와 훈련 통계를 배포에서도 동일하게 적용합니다. 사람이 운영값을 다시 표준화하면 이중 변환 오류가 생깁니다.
교차검증에서는 각 훈련 폴드마다 스케일러를 새로 적합하고 해당 검증 폴드에 적용합니다. 전체 데이터로 먼저 표준화한 뒤 CV를 하면 검증분포가 훈련변환에 들어갑니다.
운영에서 입력 스키마, 단위, 범위 밖 비율, 결측률과 변환 후 분포를 검증합니다. 모델 재학습 시 스케일러도 함께 새 버전으로 갱신해야 합니다.
나이 차이와 소득 차이가 원자료 거리와 표준화 거리에서 얼마나 다르게 기여하는지 확인하세요.
스케일링·표준화 인터랙티브 랩
중심과 산포를 조절하며 분포의 위치·폭·꼬리와 요약값이 어떻게 달라지는지 확인하세요.
조작할 때 그래프의 위치·모양·오류 구조를 먼저 보세요.
계산 결과
원자료 거리 약 1.00백만 · 표준화 거리 2.00
나이 SD=10년, 소득 SD=20백만원으로 가정했습니다. 원자료에서는 소득 단위가 지배하지만 표준화 후에는 전형적 변동 대비 차이를 비교합니다.
한 조절값만 먼저 움직인 뒤 그래프의 어떤 부분이 변하고 무엇은 그대로인지 설명해보세요.
| 주제 | 핵심 내용 |
|---|---|
| Unit Norm | 각 행 벡터의 L1·L2 길이를 1로 만들어 문서 길이보다 방향을 비교하는 코사인 유사도 문제에 사용합니다. |
| Whitening | PCA 축을 무상관·단위분산으로 바꾸지만 작은 고유값 방향의 잡음을 크게 증폭하고 원변수 해석을 잃을 수 있습니다. |
| 온라인 스케일링 | 스트리밍 자료에서는 평균과 분산을 점진적으로 갱신하되 스케일 변화가 이미 배포된 모델 계수와 호환되는지 버전 관리해야 합니다. |
| 다음 학습 | 범주형 인코딩은 순서 없는 라벨을 모델 입력으로 바꾸면서 거짓 거리·고카디널리티·목표 누수를 막습니다. |