한양과학기술고등학교

에듀테크 프로젝트 대시보드

원-핫 인코딩 & 특성 스케일링

원-핫 인코딩 & 특성 스케일링

범주형 데이터를 숫자로, 숫자를 같은 저울 위로  |  모델에 넣기 전 데이터를 정리하는 두 가지 기본기

대부분의 머신러닝 모델은 숫자 벡터만 입력받을 수 있습니다. 그런데 실제 데이터에는 "과일 종류", "도시 이름" 같은 범주형(categorical) 값도 있고, "나이"와 "연 소득"처럼 단위와 크기가 완전히 다른 숫자들도 섞여 있습니다. 이 둘을 모델이 오해하지 않도록 다듬는 과정이 원-핫 인코딩과 특성 스케일링입니다.

1. 원-핫 인코딩 — 범주에 순서를 만들지 않기

"사과=0, 바나나=1, 체리=2" 처럼 범주에 그냥 번호를 매기는 것을 레이블 인코딩이라 합니다. 문제는 대부분의 모델이 숫자의 크기 관계를 그대로 믿는다는 점입니다. 모델 입장에서는 "체리(2)가 사과(0)의 2배"라는 뜻 없는 관계가 생겨버립니다. 순서가 없는 범주라면 이는 명백한 왜곡입니다.

과일레이블 인코딩원-핫: 사과원-핫: 바나나원-핫: 체리
사과0100
바나나1010
체리2001

원-핫 인코딩은 범주 개수만큼 새 열을 만들어, 해당하는 열만 1이고 나머지는 전부 0으로 채웁니다. 이렇게 하면 범주들 사이에 거짓 순서나 거리가 생기지 않습니다. 다만 범주 종류가 수천 개로 많아지면 열이 그만큼 늘어나는 차원 폭발이 단점이라, 그럴 땐 임베딩 같은 다른 기법을 씁니다.

순서가 있는 범주(예: "낮음 < 보통 < 높음")라면 오히려 레이블 인코딩(0,1,2)이 자연스러울 수 있습니다. 원-핫이 항상 정답은 아니고, 범주에 순서 의미가 있는지가 선택 기준입니다.

2. 특성 스케일링 — 숫자들을 같은 저울에 올리기

"나이(0~100)"와 "연 소득(0~억 단위)"을 그대로 모델에 넣으면, 값의 크기 차이 때문에 소득이 거리 계산이나 경사하강법을 완전히 지배해버립니다. 두 가지 대표적인 스케일링 방법이 있습니다.

정규화 (Min-Max)   x′ = (x − min) / (max − min)  → [0, 1] 범위로 가장 작은 값이 0, 가장 큰 값이 1이 되도록 선형으로 압축
표준화 (Z-score)   x′ = (x − μ) / σ  → 평균 0, 표준편차 1 μ = 평균, σ = 표준편차. 이상치가 있어도 비교적 덜 민감함

3. 스케일이 안 맞으면 실제로 무슨 일이 생길까

20명의 (나이, 연 소득) 데이터와 질의(연두색 ★)가 있습니다. 스케일링 전에는 유클리드 거리 계산에서 소득(단위가 훨씬 큼)이 나이를 완전히 압도합니다. 스케일링 후(두 특성을 표준화)에는 두 특성이 비슷한 비중으로 반영되어, 진짜로 나이와 소득이 함께 비슷한 이웃이 강조됩니다. 버튼을 눌러 KNN이 고르는 가장 가까운 이웃 3명(굵은 테두리)이 어떻게 달라지는지 확인해 보세요.

일반 데이터 가장 가까운 이웃 3명 질의 지점 (★)
…

4. 스케일링이 특히 중요한 알고리즘

알고리즘스케일링 영향
KNN, k-평균 클러스터링거리 계산 자체가 스케일에 좌우됨 — 필수
경사하강법 기반 모델(선형/로지스틱 회귀, 신경망)특성마다 기울기 크기가 달라 수렴이 느려지거나 지그재그로 진동
SVM (커널 사용 시)거리·내적 기반이라 스케일에 민감 — 권장
결정 트리, 랜덤 포레스트임계값으로 값의 순서만 비교하므로 스케일 영향 거의 없음

핵심 정리

  • 원-핫 인코딩: 순서 없는 범주형 데이터에 거짓 순서를 만들지 않기 위한 변환
  • 정규화(Min-Max)는 [0,1] 범위로, 표준화(Z-score)는 평균 0·표준편차 1로 맞춘다
  • 거리 기반(KNN·k-평균)·경사하강법 기반 모델은 스케일링이 사실상 필수
  • 트리 기반 모델(결정 트리·랜덤 포레스트)은 스케일링 영향이 거의 없다