[python] scikit-learn을 활용한 원-핫 인코딩

원-핫 인코딩은 범주형 데이터를 숫자형 데이터로 변환하는 기법입니다. scikit-learn은 파이썬에서 머신러닝 모델을 구축하기 위한 라이브러리로, 다양한 데이터 전처리 기능을 제공합니다. scikit-learn을 사용하여 원-핫 인코딩을 쉽게 수행할 수 있습니다. 이번 포스트에서는 scikit-learn을 활용하여 원-핫 인코딩을 수행하는 방법에 대해 알아보겠습니다.

필요한 라이브러리 설치하기

scikit-learn을 사용하기 위해 우선 해당 라이브러리를 설치해야 합니다. 아래 명령어를 사용하여 설치할 수 있습니다.

pip install scikit-learn

데이터 준비하기

원-핫 인코딩을 수행하기 위해 변환할 범주형 데이터를 준비해야 합니다. 예를 들어, 다음과 같은 간단한 데이터셋을 사용하겠습니다.

import pandas as pd

data = pd.DataFrame({'fruit': ['apple', 'banana', 'orange', 'banana']})

위 코드에서는 ‘fruit’이라는 열에 과일 이름을 포함한 데이터프레임을 생성했습니다.

원-핫 인코딩 수행하기

이제 scikit-learn을 사용하여 원-핫 인코딩을 수행해보겠습니다. 다음과 같은 코드를 사용할 수 있습니다.

from sklearn.preprocessing import OneHotEncoder

encoder = OneHotEncoder(sparse=False)
encoded_data = encoder.fit_transform(data)

위 코드에서는 OneHotEncoder 클래스를 사용하여 데이터를 변환한 후, fit_transform 메서드를 사용하여 데이터를 변환합니다.

결과 확인하기

인코딩된 데이터를 확인해보겠습니다.

print(encoded_data)

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

[[1. 0. 0.]
 [0. 0. 1.]
 [0. 1. 0.]
 [0. 0. 1.]]

위 결과에서 각 열은 범주형 데이터의 카테고리를 나타내며, 해당하는 카테고리에는 1의 값을 가지고 나머지 카테고리에는 0의 값을 가집니다.

결론

scikit-learn을 사용하여 원-핫 인코딩을 손쉽게 수행할 수 있습니다. 원-핫 인코딩은 범주형 데이터를 숫자형 데이터로 변환하는 중요한 전처리 기법 중 하나입니다. scikit-learn은 이를 지원하는 강력한 라이브러리이며, 위 예시를 참고하여 직접 적용해보시기 바랍니다.

참고자료