Keras中的np_utilsto_categorical()函数的应用与实例
np_utils.to_categorical()函数是Keras中的一个辅助函数,用于将类别向量(整数)转换为在one-hot编码形式下的矩阵。
函数应用:
np_utils.to_categorical(y, num_classes=None)
参数说明:
y:一维整数数组或类别向量。
num_classes:总类别数,可选参数,默认为None。如果为None,函数将自动根据y的最大值+1确定总类别数。
返回值:
转换后的二维数组。
例子:
import numpy as np
from keras.utils import np_utils
# 创建一个类别向量
y = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
# 使用np_utils.to_categorical()将类别向量转换为one-hot矩阵
y_one_hot = np_utils.to_categorical(y)
print(y_one_hot)
输出结果:
[[1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]]
在上面的例子中,首先我们创建了一个类别向量y,包含了0到9这10个类别。然后我们使用np_utils.to_categorical()函数将类别向量转换为one-hot编码形式下的矩阵y_one_hot。最后打印出了转换后的结果。
可以看到,转换后的矩阵y_one_hot是一个10行10列的二维数组,每一行都代表一个类别,对应的类别在该行的位置上为1,其他位置为0。例如,第一行代表类别0,第一列位置上为1,其他位置为0。这种表示形式主要用于在多类分类问题中,将类别向量转换为神经网络所需的标签格式。
