[python] 데이터 원핫인코딩(One-hot encoding)
데이터 원핫인코딩은 자연어 처리나 머신 러닝 등에서 종종 사용되는 데이터 전처리 기법입니다. 이 기법은 범주형 데이터를 컴퓨터가 처리할 수 있는 숫자형 데이터로 변환해주는 방법 중 하나입니다. 원핫인코딩을 통해 각 범주형 변수를 0과 1로 이루어진 이진 벡터로 표현하게 됩니다.
예를 들어, ‘색깔’이라는 범주형 변수가 [‘빨강’, ‘파랑’, ‘초록’] 이렇게 3개의 값을 가지고 있다고 가정해봅시다. 이 경우 ‘빨강’을 [1, 0, 0], ‘파랑’을 [0, 1, 0], ‘초록’을 [0, 0, 1]과 같이 표현하게 됩니다.
원핫인코딩 예제
아래는 파이썬 코드를 통해 간단한 예제로 원핫인코딩을 수행하는 방법을 보여줍니다.
import pandas as pd
# 범주형 데이터가 담긴 열을 생성합니다.
data = pd.DataFrame({'색깔': ['빨강', '파랑', '초록', '빨강', '초록']})
# 판다스의 get_dummies를 사용하여 원핫인코딩을 수행합니다.
one_hot_encoded = pd.get_dummies(data['색깔'])
# 원핫인코딩된 데이터를 원래 데이터와 합칩니다.
encoded_data = pd.concat([data, one_hot_encoded], axis=1)
print(encoded_data)
출력결과:
색깔 빨강 파랑 초록
0 빨강 1 0 0
1 파랑 0 1 0
2 초록 0 0 1
3 빨강 1 0 0
4 초록 0 0 1
위 코드에서는 pandas 라이브러리의 get_dummies
함수를 사용하여 원핫인코딩을 수행하였습니다. 이 함수는 범주형 데이터를 원핫인코딩된 데이터프레임으로 변환해줍니다. 그리고 concat
함수를 사용하여 원래 데이터프레임과 원핫인코딩된 데이터프레임을 합쳐 출력합니다.