Python keras: to_categorical для значений с несколькими метками дает ValueError: недопустимый литерал для int () с базой 10 - PullRequest
0 голосов
/ 12 июля 2020

У меня есть обучающий набор y_train (который имеет 8 уникальных классов), полученный с использованием train_test_split в моем наборе данных.

y_train

    2019       AD
    777     QUERY
    282      INFO
    1879     REAL
    910     QUERY
        ...  
    997     QUERY
    510      FAKE
    252      REAL
    1334     FAKE
    1579     INFO
    Name: target, Length: 1653, dtype: object

Теперь когда я запускаю to_categorical на этом наборе, я получаю эту ошибку.

y_train = to_categorical (np.asarray (y_train), 8, dtype = 'O')

     41     """
     42 
---> 43     y = np.array(y, dtype='int')
     44     input_shape = y.shape
     45     if input_shape and input_shape[-1] == 1 and len(input_shape) > 1:

ValueError: invalid literal for int() with base 10: 'AD'

Я также пробовал y_train = to_categorical(np.asarray(y_train)), но он дает ту же ошибку, почему я не могу понять? Dtype - это «объект» моего обучающего набора, и я устанавливаю его как dtype = 'O', так в чем же проблема?

1 Ответ

1 голос
/ 12 июля 2020

Это сработало.

y_train = to_categorical (np.asarray (y_train.factorize () [0]))

Метод factorize() кодирует каждую строку в категориальное значение, потому что to_categorical может принимать только dtpye из int или float

...