Binary Encoding | One Hot Encoding | |
공통점 | - 범주형 변수를 수치형 변수로 변환 | |
차이점 | - 각 범주에 대한 고유의 이진 패턴 할당 | - 각 범주를 해당하는 항목이 1이고 다른 항목이 0인 이진 벡터로 인코딩 |
- 세 가지 범주가 있다면, 첫 번째 범주는 "001", 두 번째 범주는 "010", 세 번째 범주는 "100"으로 인코딩 |
- 세 가지 범주가 있다면, 첫 번째 범주는 "1 0 0", 두 번째 범주는 "0 1 0", 세 번째 범주는 "0 0 1"로 인코딩 |
|
- 비교적 적은 자리수의 이진 비트를 사용하여 데이터 크기를 줄일 수 있음 | - 범주의 수와 관계없이 모든 범주에 대해 동일한 수의 이진 비트를 사용하여 데이터를 표현 |
Binary Encoding
import pandas as pd
from category_encoders import BinaryEncoder
# 예시 데이터프레임 생성
df = pd.DataFrame({'fruits': ['apple', 'banana', 'orange', 'banana', 'orange']})
# Binary Encoder 객체 생성
be = BinaryEncoder()
# 범주형 변수를 이진 벡터로 변환하여 새로운 열을 추가
df_encoded = be.fit_transform(df['fruits'])
print(df_encoded)
fruits_0 fruits_1 fruits_2
0 0 0 1
1 0 1 0
2 0 1 1
3 0 1 0
4 0 1 1
One Hot Encoding
import pandas as pd
# 예시 데이터프레임 생성
df = pd.DataFrame({'fruits': ['apple', 'banana', 'orange', 'banana', 'orange']})
# pd.get_dummies() 함수를 사용하여 one-hot encoding 수행
df_encoded = pd.get_dummies(df['fruits'])
print(df_encoded)
apple banana orange
0 1 0 0
1 0 1 0
2 0 0 1
3 0 1 0
4 0 0 1
'STUDY > ML' 카테고리의 다른 글
[딥러닝] 심층 신경망 (0) | 2023.04.12 |
---|---|
[ML] fit_transform()과 transform() (0) | 2023.03.18 |
[혼공머신] 01. 나의 첫 머신러닝 (0) | 2023.02.10 |