간단하게 레이블 데이터 하나와 숫자 하나를 문자 순서대로 대응시키는 인코딩 방식이다.
![[파이썬 머신러닝 완벽 가이드 p.118]](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5daeb3b5-34a8-4e6d-a08d-4606075df84b/%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7_2023-08-21_154728.png)
[파이썬 머신러닝 완벽 가이드 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]](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/452c7a96-8995-4840-b531-801c4d817d49/%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7_2023-08-21_155411.png)
[파이썬 머신러닝 완벽 가이드 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를 지원 안 함)범주형 변수와 binary target 변수 사이의 관계를 측정하는 방법이다.
$$ WOE_c=\ln\frac{p\%_c}{n\%_c} $$
해석)
WOE > 0 : 해당 범주값이 positive 와 관계가 있다.WOE < 0 : 해당 범주값이 negative 와 관계가 있다.WOE = 0 : 해당 범주값이 target과 아무런 관계도 없다.basic code