STUDY/ML

[ML] Binary Encoding과 One Hot Encoding

moru_xz 2023. 3. 18. 14:37
  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