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