Python keras:多标签值的 to_categorical 给出 ValueError: invalid literal for int() with base 10
Posted
技术标签:
【中文标题】Python keras:多标签值的 to_categorical 给出 ValueError: invalid literal for int() with base 10【英文标题】:Python keras: to_categorical for multilabel values gives ValueError: invalid literal for int() with base 10 【发布时间】:2020-11-02 00:11:48 【问题描述】:我在我的数据集上使用train_test_split
派生了一个训练集y_train
(有8 个独特的类)。
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】:这行得通。
y_train = to_categorical(np.asarray(y_train.factorize()[0]))
factorize()
方法将每个字符串编码为一个分类值,因为to_categorical
只能采用dtpye
的int
或float
【讨论】:
你能解释一下它的作用吗?以上是关于Python keras:多标签值的 to_categorical 给出 ValueError: invalid literal for int() with base 10的主要内容,如果未能解决你的问题,请参考以下文章