[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 함수를 사용하여 원래 데이터프레임과 원핫인코딩된 데이터프레임을 합쳐 출력합니다.

참고자료