간단하게 레이블 데이터 하나와 숫자 하나를 문자 순서대로 대응시키는 인코딩 방식이다.
[파이썬 머신러닝 완벽 가이드 p.118]
# 그림 설명
label = ['Tv','냉장고','전자렌지','컴퓨터','선풍기','믹서']
# 레이블 인코딩 결과
label_encoding = [0,1,2,3,4,5]
sklearn.preprocessing
모듈의 LabelEncoder
클래스로 편리하게 인코딩할 수 있다.단점 : 레이블 값이 모델 예측에 영향을 줄 수 있는 ML알고리즘에는 레이블 인코딩을 사용하면 안 된다. >> Tree 계열의 알고리즘에 주로 사용
One-Hot : 여러 개의 속성 중 단 한 개의 속성만 1로 표시한다는 의미
레이블 인코딩의 단점을 개선한 인코딩 방식.
feature 값의 유형들을 행렬로 나열하고 모든 셀을 0으로 채운 후, 해당 컬럼(column)에만 1을 표시하는 방식이다.
[파이썬 머신러닝 완벽 가이드 p.119]
# 그림 설명
label = ['Tv','냉장고','전자렌지','컴퓨터','선풍기','믹서']
# 원-핫 인코딩 결과
one_hot_encoding = [
[1,0,0,0,0,0].
[0,1,0,0,0,0].
[0,0,1,0,0,0].
[0,0,0,1,0,0].
[0,0,0,0,1,0].
[0,0,0,0,0,1].
]
sklearn.preprocessing
모듈의 OneHotEncoder
클래스 또는 pandas.get_dummies()
함수로 편리하게 인코딩할 수 있다.category_encoders.TargetEncoder
에 smoothing 옵션 존재train dataset을 또다시 K-Fold로 재구성하여 각 Fold별로 다르게 Target Encoding한다.
→ 더 다양한 target encoding값으로 학습
근데 test 시에는 ?
category_encoders.TargetEncoder
에서는 K-Fold를 지원 안 함)