페이지

2022년 7월 23일 토요일

3.5.2 데이터 준비

 이전에 예제와 동일한 코드를 사용해서 데이터를 벡터로 변환합니다.

    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

    x_train = vectorize_sequences(train_data) .............. 훈련 데이터 벡터 변환

    x_test = vectorize_sequences(test_data)  ................ 텍스트 데이터 벡터 변환

레이블을 벡터로 바꾸는 방법은 두 가지입니다. 레이블의 리스트를 정수 텐서로 변환하는 것과 원-핫 인코딩을 사용하는 것입니다. 원-핫 인코딩이 범주형 데이터에 널리 사용되지 때문에 범주형 인코딩(catetorical encoding)이라고 부릅니다. 원-핫 인코딩에 대한 자세한 설명은 6.1절을 참고하세요. 이 경우 레이블의 원-핫 인코딩은 각 레이블의 인텍스 자리는 1이고 나머지는 모두 0인 벡터입니다. 다음과 같습니다.

    def to_one_hot(labels, dimension=46):

        results = np.zeros((len(labels), dimension))

        for i, label in enumerate(labels):

            results[i, label] = 1.

        return results

    one_hot_train_labels = to_one_hot(train_labels) ............. 훈련 레이블 벡터 변환

    one_hot_test_labels = to_one_hot(test_labels)..............테스트 레이블 벡터 변환

MNIST예제에서 이미 보았듯이 케라스에는 이를 위한 내장 함수가 있습니다.

    from keras.utils.np_utils import to_categorical

    one_hot_train_labels = to_categorical(train_labels)

    ont_hot_test_labels = to_categorical(test_labels)

댓글 없음: