该错误信息是由 scikit-learn 抛出的,通常出现在使用 classification_report
函数时。这个错误信息的含义是,预测目标是多分类的,但是 average='binary'
参数错误地被设置在了 classification_report
函数中。
《scikit-learn 用户指南》中的文档描述如下:
在多类分类情况下不可以使用平均参数(例如,average=’binary’)。需要选用 micro、macro、weighted 或 None。
解决这个问题的办法就是将 classification_report
函数中的 average=
参数改为合适的值。具体而言,如果您想要报告每个类别的分数,请使用 average=None
;如果您想按每个样本分配权重进行平均,请使用 average='weighted'
;如果您想计算宏平均分数,请使用 average='macro'
;如果您想计算微平均分数,请使用 average='micro'
。
例如,您可以按如下方式在 classification_report
函数中使用 average='macro'
参数:
from sklearn.metrics import classification_report
# y_true 是真实的目标变量,y_pred 是模型预测出的目标变量
target_names = ['class 0', 'class 1', 'class 2']
print(classification_report(y_true, y_pred, target_names=target_names, average='macro'))
这样做会在终端中得到准确的评估报告,且不会再出现之前的错误信息。