gpt4 book ai didi

python - 使用 keras utils to_categorical 将分类数据转换回数字

转载 作者:行者123 更新时间:2023-12-01 08:27:29 32 4
gpt4 key购买 nike

我正在使用 keras.utils 中的 to_categorical 对列表中的数字进行一次性编码。如何从分类数据中取回数字?有没有可用的功能。

Y=to_categorical(y, num_classes=79)

最佳答案

您只需输入 np.argmax() 即可完成此操作:

import numpy as np
y = [0, 1, 2, 0, 4, 5]
Y = to_categorical(y, num_classes=len(y))
print(Y)
y = np.argmax(Y, axis=-1)
print(y)
# [0, 1, 2, 0, 4, 5]
<小时/>

为什么使用argmax(axis=-1)

在上面的示例中,to_categorical 返回形状为 (6,6) 的矩阵。设置axis=-1表示提取每行中最大的索引。

[[1. 0. 0. 0. 0. 0.]
[0. 1. 0. 0. 0. 0.]
[0. 0. 1. 0. 0. 0.]
[1. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 1. 0.]
[0. 0. 0. 0. 0. 1.]]

查看更多信息 here关于索引。

如果我的数据超过 1 维怎么办?

没有区别。初步列表中的每个条目都转换为大小为[1, nb_classes]的one-hot编码,其中只有一个索引为1,其余为0。与上面的示例类似,当您找到每一行中的最大值时,它会转换为原始列表。

y = [[0, 1], [2, 0], [4, 5]]
Y = keras.utils.to_categorical(y, num_classes=6)

#[[[1. 0. 0. 0. 0. 0.]
# [0. 1. 0. 0. 0. 0.]]
#
# [[0. 0. 1. 0. 0. 0.]
# [1. 0. 0. 0. 0. 0.]]
#
# [[0. 0. 0. 0. 1. 0.]
# [0. 0. 0. 0. 0. 1.]]]

y = np.argmax(Y, axis=-1)

#[[0 1]
# [2 0]
# [4 5]]

关于python - 使用 keras utils to_categorical 将分类数据转换回数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54143458/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com