微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用列表理解访问分类报告指标

如何解决无法使用列表理解访问分类报告指标

我正在使用 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?