使用Keras中的categorical_accuracy()函数评估多分类模型的准确率
发布时间:2023-12-16 13:16:26
Keras中的categorical_accuracy()函数是一个用于评估多分类模型准确率的函数。它可以用来计算预测结果和真实标签之间的准确匹配率。以下是一个使用例子,包括数据准备、模型建立、编译和训练,以及使用categorical_accuracy()函数评估模型准确率的步骤。
首先,我们需要准备数据。这里以MNIST手写数字数据集为例。我们将使用60000个训练样本和10000个测试样本。
from keras.datasets import mnist from keras.utils import to_categorical # 加载MNIST数据集 (x_train, y_train), (x_test, y_test) = mnist.load_data() # 对输入数据进行归一化和reshape处理 x_train = x_train.reshape(-1, 28, 28, 1) / 255.0 x_test = x_test.reshape(-1, 28, 28, 1) / 255.0 # 对标签数据进行one-hot编码 y_train = to_categorical(y_train, num_classes=10) y_test = to_categorical(y_test, num_classes=10)
接下来,我们需要建立一个多分类模型。这里我们使用一个简单的卷积神经网络作为例子。
from keras.models import Sequential from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense # 建立模型 model = Sequential() model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1))) model.add(MaxPooling2D((2, 2))) model.add(Conv2D(64, (3, 3), activation='relu')) model.add(MaxPooling2D((2, 2))) model.add(Flatten()) model.add(Dense(64, activation='relu')) model.add(Dense(10, activation='softmax'))
然后,我们需要编译并训练模型。
# 编译模型 model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # 训练模型 model.fit(x_train, y_train, batch_size=128, epochs=10, validation_data=(x_test, y_test))
在模型训练完成后,我们可以使用categorical_accuracy()函数计算模型在测试集上的准确率。
from keras.metrics import categorical_accuracy # 对测试集进行预测 y_pred = model.predict(x_test) # 计算准确率 accuracy = categorical_accuracy(y_test, y_pred)
最后,我们可以打印出准确率的值。
print("准确率:", accuracy)
这个例子展示了使用Keras中的categorical_accuracy()函数评估多分类模型的准确率的步骤。通过准备数据、建立模型、编译和训练,然后使用categorical_accuracy()函数计算测试集上的准确率,我们可以评估模型的性能。
