如何为多类多输出数据生成带标签名的sklearn分类报告
解决方法
直接给classification_report传入target_names参数,参数值取拟合完成的MultiLabelBinarizer实例的classes_属性,即可输出原始标签名。
修改后代码
原有F1分数计算逻辑无需改动,仅修改分类报告生成部分即可:
from sklearn.metrics import classification_report print(classification_report( m.transform(y_test_true_f), m.transform(y_pred_f), target_names=m.classes_ ))
原理说明
- 完成
fit()操作的MultiLabelBinarizer实例m,会将所有识别到的原始标签按固定顺序存储在m.classes_属性中,顺序和二值化矩阵的列索引完全一一对应:数字索引i对应的原始标签就是m.classes_[i]。 classification_report默认用列索引作为行名展示,传入target_names参数后,会按顺序替换对应索引位置的显示名称。
若原始标签包含中文、长文本或特殊字符,输出表格可能出现对齐错位,属于控制台显示问题,不影响指标计算结果的准确性。
内容的提问来源于stack exchange,提问作者tanmay
相关产品推荐
相关产品推荐

