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

使用Keras中的categorical_accuracy()函数评估多分类准确度

发布时间:2023-12-16 13:11:27

在Keras中,可以使用categorical_accuracy()函数来评估多分类问题的准确度。该函数会计算模型对于输入数据的预测和真实标签之间的准确匹配比例。

下面是一个使用categorical_accuracy()函数评估多分类准确度的例子:

import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam
from keras.metrics import categorical_accuracy

# 创建一个简单的多分类模型
model = Sequential()
model.add(Dense(64, activation='relu', input_dim=10))
model.add(Dense(64, activation='relu'))
model.add(Dense(3, activation='softmax'))

# 编译模型,定义损失函数和优化器
model.compile(loss='categorical_crossentropy',
              optimizer=Adam(),
              metrics=[categorical_accuracy])

# 创建随机输入数据和对应的真实标签
x_train = np.random.random((1000, 10))
y_train = np.random.randint(3, size=(1000, 1))
y_train = np.eye(3)[y_train.squeeze()]

# 训练模型
model.fit(x_train, y_train, epochs=10, batch_size=32, validation_split=0.2)

# 使用测试数据评估模型准确度
x_test = np.random.random((200, 10))
y_test = np.random.randint(3, size=(200, 1))
y_test = np.eye(3)[y_test.squeeze()]

eval_result = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', eval_result[0])
print('Test accuracy:', eval_result[1])

在这个例子中,我们首先创建了一个简单的多分类模型,包含两个隐藏层和一个输出层。然后编译模型,并为评估指标选择了categorical_accuracy()函数。

接下来,我们使用随机生成的数据和标签进行模型训练。在训练过程中,模型会计算并输出每个epoch的训练损失和准确度。

最后,我们使用独立的测试数据对模型进行评估,并输出测试损失和准确度。

需要注意的是,在模型编译时,我们将categorical_accuracy()函数作为一个指标(metrics)传递给了compile()函数。这会使得模型在训练过程中计算并输出准确度指标。

另外,为了创建输入数据和标签,我们使用了NumPy库来生成随机的数据。这里我们使用了一维的随机整数数组来表示标签,并将其转换成了独热编码形式的二维数组。

通过这个例子,你可以使用categorical_accuracy()函数来评估你的多分类模型在训练和测试数据上的准确度。这对于监控和改进模型的性能非常有用。