首页 > 解决方案 > 如何计算多类多标签分类的 f1_score

问题描述

我为我的functional classification model. 测试数据的预测概率yprob = model.predict(testX)给了我:

yprob = array([[0.18120882, 0.5803128 , 0.22847839],
       [0.0101245 , 0.12861261, 0.9612609 ],
       [0.16332535, 0.4925239 , 0.35415074],
       ...,
       [0.9931931 , 0.09328955, 0.01351734],
       [0.48841736, 0.25034943, 0.16123319],
       [0.3807928, 0.42698202, 0.27493873]], dtype=float32)

我想从中计算准确率、精度、召回率、F1 分数和混淆矩阵。
顺序 api 提供了一个predict_classes功能来做到这一点。
yclasses = model.predict_classes(testX)并使用 sklearn 的f1_score函数,我们可以计算所有这些值。
如何将其应用于预测多类多标签分类的测试数据的概率?
我的第二个问题是知道每个数组的最大值是否yprob = model.predict(testX)对应于预测的类?例如,[0.18120882, 0.5803128 , 0.22847839]是数组中的第一个元素。最高值为 0.5803128。这是否意味着它对应于一个热编码器[0, 1, 0], so the second label,因为它是数组中的第二个元素?

标签: machine-learningscikit-learnclassificationmultilabel-classificationprecision-recall

解决方案


推荐阅读