10.1.1 희소 표현 기반 임베딩
희소 표현(sparse representation)은 대부분의 값이 0으로 채워져 있는 경우로, 대표적으로 원-핫 인코딩이 있습니다.
원-핫 인코딩
원-핫 인코딩(one-hot encoding)이란 주어진 텍스트를 숫자(벡터)로 변환해 주는 것입니다. 다시 말해 단어 N개를 각각 N차원의 벡터로 표현하는 방식으로, 단어가 포함되어 있는 위치에 1을 넣고 나머지에는 0 값을 채웁니다. 예를 들어 딕셔너리에 [calm, fast, cat] 같은 값이 있다면 fast를 표현하는 벡터는 [0, 1, 0]이 됩니다.
▲ 그림 10-1 원-핫 인코딩
사이킷런을 이용하여 원-핫 인코딩을 적용한 예제를 살펴보겠습니다. 9장에서 사용한 class2.csv 파일을 사용하여 예제를 진행합니다.
코드 10-1 원-핫 인코딩 적용
import pandas as pd
class2 = pd.read_csv("..\chap10\data\class2.csv") ------ 데이터셋을 메모리로 로딩
from sklearn import preprocessing
label_encoder = preprocessing.LabelEncoder() ------ 데이터를 인코딩하는 데 사용하며, 다음의 OneHotEncoder()와 함께 사용
onehot_encoder = preprocessing.OneHotEncoder() ------ 데이터를 숫자 형식으로 표현
train_x = label_encoder.fit_transform(class2['class2'])
train_x