원-핫 인코딩을 하면 컬럼이 여러 개로 늘어나기 때문에, 늘어난 모든 컬럼에 대해 일괄적으로 스케일링을 적용하는 것이 매끄럽다. 또한, 모든 피처를 인코딩한 뒤, 마지막 단계에서 모델이 읽기 좋은 형태로 스케일링하는 것이 파이프라인 구성상 훨씬 간결하다.
거리 기반 알고리즘인 KNN, SVM 등에서는 모든 피처의 단위를 맞추는 것이 중요하기에 함께 스케일링 하는 것이 권장된다. 하지만 MinMaxScaler는 이미 0과 1의 값이므로 값의 변화가 거의 없거나 유지된다. 트리 기반 모델은 스케일링 순서나 적용 여부가 결과에 영향이 없다.
원-핫 인코딩 : 범주형 데이터를 0과 1로 이루어진 여러 개의 열로 확장하는 방식
특징 : 항목 간의 순서나 서열이 없을 때 사용한다. 모델이 데이터 간의 관계를 왜곡하지 않고 학습할 수 있다.
단점 : 카테고리가 너무 많으면 열이 기하급수적으로 늘어나 학습 속도가 느려지고 성능이 낮아질 수 있다. (= 차원의 저주)
예시 :
| 고객 ID | 결제 수단 (Original) | 결제_네이버페이 | 결제_신용카드 | 결제_카카오페이 |
|---|---|---|---|---|
| 1 | 네이버페이 | 1 | 0 | 0 |
| 2 | 신용카드 | 0 | 1 | 0 |
| 3 | 카카오페이 | 0 | 0 | 1 |
레이블 인코딩 : 범주를 정수로 매핑하는 방식
특징 : 상/중/하 혹은 1등급/2등급처럼 순서나 등급의 의미가 있을 때 유리하다. 메모리 사용량이 적고 차원이 늘어나지 않는다.
단점 : 순서가 없는 데이터에 적용하면 잘못된 가중치를 학습할 위험이 있다.
예시 :
| 고객 ID | 사이즈 (Original) | 레이블 인코딩 결과 |
|---|---|---|
| 1 | S | 0 |
| 2 | M | 1 |
| 3 | XL | 3 |
| 4 | L | 2 |
타깃 인코딩 : 각 범주를 해당 범주에 속하는 타깃 변수의 평균 값으로 대체하는 방식
특징 : 범주의 개수가 많아 원-핫 인코딩을 쓰기 어려울 때 대안책으로 사용 가능하다. 차원이 늘어나지 않으면서도 타겟과 상관관계가 높은 수치를 직접 입력하므로 예측 성능이 매우 좋다.
단점 : 과적합 가능성이 너무 크다. → K-Fold 등을 활용해 이를 보완해야 한다.
예시 :
| 거주 지역 | 구매 여부 (Target) | 타겟 인코딩 결과 (평균) |
|---|---|---|
| 서울 | 1 | 0.8 |
| 서울 | 0 | 0.8 |
| 부산 | 1 | 0.5 |
| 제주 | 0 | 0.1 |
오디널 인코딩 : 레이블 인코딩과 비슷하지만, 사용자가 직접 순서를 정해주는 방식
특징 : 명확한 계층 구조가 있을 때 사용한다.
예시 :
| 고객 ID | 등급 (Original) | 오디널 인코딩 결과 |
|---|---|---|
| 1 | Gold | 3 |
| 2 | Bronze | 1 |
| 3 | Silver | 2 |