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

Keras中的categorical_accuracy()函数:衡量多分类模型准确度的指标

发布时间:2023-12-16 13:18:59

Keras中的categorical_accuracy()函数是一个用于衡量多分类模型准确度的指标。该函数计算的是预测值和真实值之间的匹配度,返回预测准确的样本的比例。

使用例子如下:

import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.losses import categorical_crossentropy
from keras.metrics import categorical_accuracy

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

# 编译模型,并指定损失函数和评估指标
model.compile(loss=categorical_crossentropy,
              optimizer='adam',
              metrics=[categorical_accuracy])

# 创建训练数据和标签
x_train = np.random.random((1000, 100))
y_train = np.random.randint(10, size=(1000, 1))

# 将标签进行one-hot编码
y_train = np.eye(10)[y_train.reshape(-1)]

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

# 创建测试数据和标签
x_test = np.random.random((100, 100))
y_test = np.random.randint(10, size=(100, 1))

# 将标签进行one-hot编码
y_test = np.eye(10)[y_test.reshape(-1)]

# 评估模型
loss, accuracy = model.evaluate(x_test, y_test, batch_size=32)

print('Loss:', loss)
print('Accuracy:', accuracy)

上述代码首先创建了一个多分类模型,包含两个隐藏层和一个输出层。接着通过编译模型,指定了损失函数为categorical_crossentropy和评估指标为categorical_accuracy。

然后使用numpy创建了训练数据和标签,训练数据有1000个样本,每个样本有100个特征,标签是一个0-9之间的整数。将标签进行one-hot编码后,使用x_train和y_train进行模型训练。

接下来创建了测试数据和标签,同样进行了one-hot编码,然后使用x_test和y_test对模型进行评估。最后打印出损失和准确度。

categorical_accuracy()函数会根据预测值和真实值之间的匹配度计算准确度。准确度越高表示预测值和真实值之间的匹配度越好。最终输出的准确度表示模型在测试数据上的表现。