【问题标题】:can't access classification_report metrics with list comprehension无法使用列表理解访问分类报告指标
【发布时间】:2021-06-10 15:08:24
【问题描述】:

我正在使用sklearn.metrics.classification_report 进行实验并评估结果。如果我传递一个参数output_dict=True,它会返回一个字典,其中包含每个类的所有指标(每个类都有它的字典)。

问题是我想要所有类的特定指标(即 f1-score)列表。我想做的是:

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 函数有关,因为我能够使用手动创建的嵌套字典运行此代码。

【问题讨论】:

    标签: python dictionary scikit-learn classification list-comprehension


    【解决方案1】:

    classification_report 字典的最后 3 项不是另一个字典,而是整体(浮动)指标。您需要在使用列表推导之前过滤掉它们。

    【讨论】:

      猜你喜欢
      • 2015-06-21
      • 2015-07-26
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-13
      • 1970-01-01
      相关资源
      最近更新 更多