History
home
BDA 연혁
home

- 데이터 인코딩, 라벨링

데이터 인코딩이란?

데이터 인코딩은 머신러닝 모델이 이해할 수 있도록 데이터를 숫자 형태로 변환하는 과정이다. 대부분의 머신러닝 알고리즘은 숫자 데이터를 입력으로 받기 때문에, 범주형 데이터나 텍스트 데이터는 모델 학습 전에 적절한 숫자 형태로 인코딩되어야 한다.
데이터 인코딩에는 주로 두 가지 방법이 사용된다: 레이블 인코딩(Label Encoding)과 원-핫 인코딩(One-Hot Encoding).
레이블 인코딩: 범주형 데이터의 각 클래스를 고유한 정수로 매핑한다. 예를 들어, 'red', 'blue', 'green'은 각각 0, 1, 2로 인코딩될 수 있다.
원-핫 인코딩: 각 클래스를 이진 벡터로 변환한다. 벡터의 길이는 클래스의 수와 같으며, 해당 클래스에 해당하는 위치만 1이고 나머지는 모두 0이다. 예를 들어, 'red', 'blue', 'green'은 [1, 0, 0], [0, 1, 0], [0, 0, 1]로 인코딩될 수 있다.
Python의 pandas와 scikit-learn 라이브러리는 데이터 인코딩을 위한 함수들을 제공한다. 아래 실습 코드는 레이블 인코딩과 원-핫 인코딩을 수행하는 예제이다.
import pandas as pd from sklearn.preprocessing import LabelEncoder, OneHotEncoder # 예제 데이터 프레임 생성 df = pd.DataFrame({ 'color': ['red', 'blue', 'green', 'blue', 'red'] }) # 레이블 인코딩 label_encoder = LabelEncoder() df['color_label'] = label_encoder.fit_transform(df['color']) print("레이블 인코딩 결과:\n", df) # 원-핫 인코딩 onehot_encoder = OneHotEncoder(sparse=False) onehot_encoded = onehot_encoder.fit_transform(df[['color']]) # 원-핫 인코딩된 데이터를 DataFrame으로 변환 onehot_encoded_df = pd.DataFrame(onehot_encoded, columns=onehot_encoder.get_feature_names_out(['color'])) print("원-핫 인코딩 결과:\n", onehot_encoded_df)
Python
복사
위 코드는 먼저, 세 가지 색상을 가진 범주형 데이터를 레이블 인코딩과 원-핫 인코딩을 통해 숫자 데이터로 변환한다. 레이블 인코딩은 LabelEncoder를 사용하여 수행되며, 원-핫 인코딩은 OneHotEncoder를 사용하여 수행된다. 원-핫 인코딩 결과는 각 색상이 각각의 칼럼으로 분리되고, 해당 색상의 행만 1의 값을 가진다.
데이터 인코딩은 머신러닝 모델을 학습하기 전에 데이터를 준비하는 필수적인 과정이다. 올바른 데이터 인코딩 방법을 선택하는 것은 모델의 성능에 중대한 영향을 미칠 수 있다.