Python keras:多标签值的 to_categorical 给出 ValueError:以 10 为基数的 int() 的文字无效

afs*_*ben 2 python keras tensorflow valueerror

我有一个使用我的数据集派生的训练集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
Run Code Online (Sandbox Code Playgroud)

现在,当我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'
Run Code Online (Sandbox Code Playgroud)

我也尝试过, y_train = to_categorical(np.asarray(y_train))但它给出了同样的错误,我不明白为什么?dtype 是我的训练集的“对象”,我将其设置为 dtype = 'O' 那么问题是什么?

afs*_*ben 5

这有效。

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

factorize()方法将每个字符串编码为一个分类值,因为to_categorical只能dtpye采用intfloat