데이터 전처리 중 인코딩에 정리한 페이지입니다.
- One-Hot Encoding
- Label Encoding
0. 개념
- Encoding: 범주형 데이터를 숫자형 데이터로 변환
- 예) Label Encoding, One-hot Encoding
- Binning: 숫자형 데이터를 범주형 데이터로 변환 (= 범주화)
1. One-Hot Encoding
1.1. 개념
- 하나의 컬럼 내의 unique 한 값들만큼 컬럼을 생성 -> 해당하면 1, 해당하지 않으면 0을 채우는 방식
- 주로 우선순위가 없는 컬럼에 사용
- 단점: 컬럼이 길어짐 -> 희소행렬의 됨 (대부분 값이 0)
1.2. 사용방법
import pandas as pd
X_oneHot = pd.get_dummies(X)
2. Label Encoding
2.1. 개념
- 레이블을 숫자로 mapping
- 주로 컬럼 내 데이터의 우선순위가 있는 컬럼에 적용
- 직접 숫자를 매핑하여 적용, 영향을 많이 미치는 데이터에 큰 숫자를 매핑
2.2. 사용 방법
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
train['col'] = le.fit_transform(train['col'])
test['col'] = le.transform(test['col'])
- 주의사항
- train과 test 의 class 종류가 다를 수 있으므로, train과 test 데이터를 합친 후 인코딩을 진행하는 등의 방식을 취해야 함