欢迎访问宙启技术站
智能推送

使用Keras的to_categorical()函数进行标签独热编码的简单方法

发布时间:2023-12-17 09:34:47

在使用机器学习模型进行训练时,有时需要对标签进行独热编码。独热编码是一种将离散型数据转换为二进制向量的技术,它将每个类别表示为一个 的二进制码。

在Keras中,可以使用to_categorical()函数来进行简单的标签独热编码。这个函数可以将整数标签转换为独热编码形式的向量,并返回一个矩阵,其中每一行表示一个样本的独热编码。

下面我们来看一个使用to_categorical()函数的例子。假设我们有一个包含5个类别的分类问题,并且有如下的整数标签数据:

import numpy as np
from tensorflow import keras

labels = np.array([0, 1, 2, 3, 4])

我们可以使用to_categorical()函数对这些标签进行独热编码,代码如下:

encoded_labels = keras.utils.to_categorical(labels)

执行完上述代码后,encoded_labels将包含独热编码形式的标签数据。encoded_labels是一个二维数组,每一行表示一个样本的标签,对应的类别的位置将被设置为1,其他位置将被设置为0。

我们可以打印看一下结果:

print(encoded_labels)

输出结果如下:

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

从输出结果可以看出, 行对应的标签为0,第二行对应的标签为1,以此类推。

另外,to_categorical()函数还可以接收一个参数num_classes,用于指定独热编码后的向量的长度。如果省略这个参数,则默认从数据中自动推断出类别的数量。例如,如果我们指定num_classes=6,则会在原先的5个类别之后添加一个全0的向量来表示新的类别。

encoded_labels = keras.utils.to_categorical(labels, num_classes=6)

以上就是使用Keras的to_categorical()函数进行标签独热编码的简单方法。通过这个函数,我们可以方便地将整数标签转换为独热编码形式的向量,为机器学习模型的训练提供输入数据。