본문 바로가기

BLOG/머신러닝

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

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

 

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.]])

 

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