You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从sklearn.metrics的classification_report中提取类名存入列表

sklearn分类报告类别名称提取方法

方法1:从已生成的报告文本中提取

适合你仅保存了分类报告文本、没有原始标签数据的场景,直接通过字符串分割提取即可:

# 你的分类报告字符串
report_str = """                precision    recall  f1-score   support

      B-Origin       0.99      0.98      0.98       787
     B-Opinion       0.90      0.85      0.88        41
I-Relationship       0.95      0.80      0.87       153
        I-Year       0.93      0.97      0.95       285
      I-Origin       0.94      0.90      0.92       570
"""

# 按行分割、过滤空行
lines = [line.strip() for line in report_str.split('\n') if line.strip()]
# 跳过第一行表头,取剩余每行第一个元素即为类别名
names = [line.split()[0] for line in lines[1:]]

运行后names的结果就是你需要的["B-Origin", "B-Opinion", "I-Relationship", "I-Year", "I-Origin"]。
如果你的完整报告还包含末尾的accuracy、macro avg、weighted avg统计行,调整切片去掉末尾3行即可:

# 完整报告的提取逻辑
names = [line.split()[0] for line in lines[1:-3]]

方法2:生成报告时直接获取(更推荐)

不需要解析文本,准确率更高,直接取生成报告用到的标签列表即可:

from sklearn.metrics import classification_report
import numpy as np

# 你的真实标签和预测标签
y_true = [....]
y_pred = [....]

# 直接获取和报告顺序一致的去重类别列表
unique_labels = np.unique(y_true).tolist()
# 生成报告时可以指定labels参数固定顺序
report = classification_report(y_true, y_pred, labels=unique_labels)
# unique_labels就是你需要的类别列表
names = unique_labels

内容的提问来源于stack exchange,提问作者Mughees Asif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 21:06:04