BLOG/머신러닝

[머신러닝] 데이터(레이블)를 벡터로 변환하는 방법 (파이썬 코드)

알디노 2021. 3. 23. 18:01

다중 분류 문제를 해결하기 위한 학습 모델을 만들 때, 학습에 사용할 데이터를 준비하는 단계에서 데이터를 벡터로 변환하는 과정을 거쳐야 하는데요, 아래와 같이 데이터를 벡터로 만들어주는 함수를 만들어서 사용할 수 있습니다.

 

import numpy as np

def vectorize_sequences(sequences, dimension=10000):
    results = np.zeros((len(sequences), dimension))
    for i, sequence in enumerate(sequences):
        results[i, sequence] = 1.
    return results

 

만약, train_data = [1, 42, 323, 34,66, 85]라는 정수 인코딩이 된 데이터가 있다고 가정할 때, 이 함수를 사용하여 벡터로 변환해보겠습니다.

 

train_data = [1, 42, 323, 34,66, 85]

x_train = vectorize_sequences(train_data)
print(x_train)


#output :
array([[0., 1., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.]])

 

벡터로 변환한 결과, 마치 원-핫 인코딩이 된 것과 같은 결과가 출력된 것을 확인할 수 있습니다. 이제 이 데이터를 이용하여 모델에 학습시키면 된답니다.