Python Spyder中调用sklearn.metrics.classification无属性报错如何解决
问题排查与修复方案
错误核心原因
- sklearn.metrics模块下不存在名为classification的二级子模块,你错误拆分了
classification_report这个完整函数名,误以为分类相关的指标都要通过metrics.classification.xxx调用,实际上分类指标大多直接挂载在metrics模块下。 - 你提供的代码还缺失
os和numpy的导入声明,运行时也会触发未定义错误。
修复步骤
- 补充缺失的导入,在代码最开头添加两行:
import os import numpy as np
- 修改报错的代码行,去掉错误的
.classification前缀:
原错误代码:
print(metrics.classification.accuracy_score(y_test, y_pred))
修改为:
print(metrics.accuracy_score(y_test, y_pred))
补充说明
sklearn中常见的分类指标调用方式都是直接从metrics模块调用,比如:
- 准确率:
metrics.accuracy_score() - 精确率、召回率、F1:
metrics.precision_score()/metrics.recall_score()/metrics.f1_score() - 分类报告:
metrics.classification_report() - 混淆矩阵:
metrics.confusion_matrix()
内容的提问来源于stack exchange,提问作者Yannick Durindel
相关产品推荐
相关产品推荐

