首页 > 解决方案 > 如何使用 Micro F-Measure 评估 Keras 多类模型?

问题描述

我想用 Micro F-measures 在 Tensorflow2/Keras 中评估我的多类模型。

如何做到这一点?

给定一个模型

model = tf.keras.models.load_model('NNMODEL.h5')

测试数据集

testX 
testY 

标签: tensorflowkerasevaluationtf.keras

解决方案


最简单的方法是使用scikit-learn.

在官方文档中,您可以看到以下示例(稍作修改):

from sklearn.metrics import f1_score
y_true = [0, 1, 2, 0, 1, 2]
y_pred = [0, 2, 1, 0, 0, 1]
result = f1_score(y_true, y_pred, average = None) (an array of f1-scores for each class)
result_micro = f1_score(y_true, y_pred, average='micro') (a float value)

您需要注意将您的 ' average' 参数设置为None; 这样,您将分别获得每个班级的 F1 分数。如果您确实想要每个班级没有 F1 分数的总体 F1 分数,请使用average = 'micro'.

因此,对 中的每个元素进行testX预测,将类预测附加到一个列表中(这y_pred从上面的示例中构建),然后y_true实际上是基本事实,即testY在您的情况下。


推荐阅读