如何解决无法使用列表理解访问分类报告指标
我正在使用 sklearn.metrics.classification_report
运行实验并评估结果。如果我传递一个参数 output_dict=True
,它会返回一个字典,其中包含每个类的所有指标(每个类都有自己的字典)。
问题是我想要所有类别的特定指标(即 f1 分数)的列表。我想做的是:
report = classification_report(y_tr,y_pr,target_names=label_names,output_dict=True)
all_f1_scores = [metrics['f1-score'] for metrics in report.values()]
这是返回的错误回溯:
TypeErrorTraceback (most recent call last)
<ipython-input-76-1aa68c4b1f46> in <module>
----> 1 [metrics['f1-score'] for metrics in report.values()]
<ipython-input-103-0d9c92bd7736> in <listcomp>(.0)
----> 1 [metrics['f1-score'] for metrics in report.values()]
TypeError: 'float' object is not subscriptable
我不知道是什么原因导致此错误,但我怀疑它与 classification_report
函数有关,因为我能够使用手动创建的嵌套字典运行此代码。
解决方法
classification_report
字典的最后 3 项不是另一个字典,而是整体(浮动)指标。在使用列表理解之前,您需要将它们过滤掉。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。