【发布时间】:2020-02-27 11:09:11
【问题描述】:
我想在 Tensorflow2/Keras 中使用 Micro F-measures 评估我的多类模型。
如何做到这一点?
给定一个模型
model = tf.keras.models.load_model('NNMODEL.h5')
和
测试数据集
testX
testY
【问题讨论】:
标签: tensorflow keras evaluation tf.keras
我想在 Tensorflow2/Keras 中使用 Micro F-measures 评估我的多类模型。
如何做到这一点?
给定一个模型
model = tf.keras.models.load_model('NNMODEL.h5')
和
测试数据集
testX
testY
【问题讨论】:
标签: tensorflow keras evaluation tf.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 实际上是基本事实,即@987654329 @ 在你的情况下。
【讨论】: