tensorflow - 如何使用 Micro F-Measure 评估 Keras 多类模型?
问题描述
我想用 Micro F-measures 在 Tensorflow2/Keras 中评估我的多类模型。
如何做到这一点?
给定一个模型
model = tf.keras.models.load_model('NNMODEL.h5')
和
测试数据集
testX
testY
解决方案
最简单的方法是使用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
在您的情况下。
推荐阅读
- java - StringTokenizer 错误:标记化行完成后出现 NoSuchelementException
- javascript - 向下滑动以显示更多内容
- php - 这是 100% 安全的 SQL 注入,并且可以正确输入任何输入吗?
- angular - 如何在 html“值”属性中使用字符串插值
- outlook-addin - Outlook 2007 添加在 xp 上的 Outlook 中未加载
- regex - 请问如何在mariadb的过程中使用正则表达式?
- ffmpeg - 如何为 h264_omx 编码器指定 ffmpeg 配置文件?
- android - 无法解析 R [无 admob]
- oracle-adf - MDS-00013:找不到元数据对象“/WEB-INF/Foo.xml”的元数据
- c - 使用信号量的生产者和消费者中的分段错误(核心转储)