【发布时间】: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