😏원-핫 인코딩

원-핫 인코딩one-hot encoding은 여러 값 중 하나one만 활성화hot하는 인코딩입니다.

실행 절차

  1. 인코딩 하려는 피처의 고윳값 개수를 구합니다.

  2. 피처의 고윳값 개수만큼 열을 추가합니다.

  3. 각 고윳값에 해당하는 열에 1을 표시하고 나머지 열에는 0을 표시합니다.

from sklearn.preprocessing import LabelEncoder, OneHotEncoder

fruits = ['사과', '블루베리', '바나나', '귤', '블루베리', '바나나', '바나나', '사과']

# 레이블 인코더, 원-핫 인코더 생성
label_encoder = LabelEncoder()
onehot_encoder = OneHotEncoder()

# 레이블 인코딩 적용(문자 데이터 -> 숫자 데이터)
fruits_label_encoded = label_encoder.fit_transform(fruits)
# 원-핫 인코딩 적용
fruits_onehot_encoded = onehot_encoder.fit_transform(fruits_label_encoded.reshape(-1, 1))

print('원-핫 인코딩 적용 후 데이터:\n', fruits_onehot_encoded.toarray())
원-핫 인코딩 적용 후 데이터:
 [[0. 0. 0. 1.]
 [0. 0. 1. 0.]
 [0. 1. 0. 0.]
 [1. 0. 0. 0.]
 [0. 0. 1. 0.]
 [0. 1. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 0. 1.]]

판다스의 get_dummies() 함수를 사용하면 더 간단하게 구현할 수 있습니다.

import pandas as pd

pd.get_dummies(fruits)