Keras中to_categorical()函数详解及用法示例
在Keras中,to_categorical()函数是用来对整型数据进行one-hot编码的函数。该函数可以将一个整型的向量转换为一个独热编码的二维矩阵,其中每一行表示一个整数值对应的独热编码。
to_categorical(y, num_classes=None, dtype='float32')
参数说明:
- y:输入的整型向量;
- num_classes:输出的独热编码的维度大小,默认为None,表示自动根据输入数据的种类数量确定维度大小;
- dtype:输出矩阵的数据类型,默认为'float32'。
下面是一个使用to_categorical()函数的示例:
from keras.utils import to_categorical y = [0, 1, 2, 1, 0] # 输入整型向量 y_one_hot = to_categorical(y) # 进行独热编码 print(y_one_hot)
运行结果:
[[1. 0. 0.] [0. 1. 0.] [0. 0. 1.] [0. 1. 0.] [1. 0. 0.]]
在这个示例中,输入的整型向量y有5个元素,包含了三个不同的整数值。to_categorical()函数将这些整数值转换为了一个3列的独热编码矩阵,其中每一行表示一个整数值对应的独热编码。
需要注意的是,to_categorical()函数默认使用float32作为输出矩阵的数据类型,可以通过dtype参数进行修改。此外,可以通过num_classes参数指定输出矩阵的维度大小,如果不指定,to_categorical()函数会自动根据输入数据的种类数量确定维度大小。
下面是一个使用to_categorical()函数指定num_classes参数的示例:
from keras.utils import to_categorical y = [0, 1, 2, 1, 0] # 输入整型向量 y_one_hot = to_categorical(y, num_classes=4) # 指定输出维度大小为4 print(y_one_hot)
运行结果:
[[1. 0. 0. 0.] [0. 1. 0. 0.] [0. 0. 1. 0.] [0. 1. 0. 0.] [1. 0. 0. 0.]]
在这个示例中,指定了num_classes参数为4,因此输出矩阵的维度大小为4列,每一行表示一个整数值对应的独热编码。由于输入的整型向量y只包含了3个不同的整数值,所以输出矩阵的后面一列都是0。
总结一下,to_categorical()函数是Keras中用来实现one-hot编码的函数,可以将整型向量转换为独热编码的二维矩阵。该函数的用法简单明了,可以通过num_classes参数指定输出矩阵的维度大小,通过dtype参数指定输出矩阵的数据类型,默认为float32。
