ValueError:Target is multilabel-indicator but average=‘binary‘.Please choose another average setting

本文分析了在使用sklearn库计算f1_score时遇到的`ValueError`,指出问题在于目标是多标签指示器但平均设置为'binary'。解决方案是将平均设置更改为'binary'之外的选项,如'micro'、'macro'、'weighted'或'samples'。同时,提供了将多维预测结果转换为一维的方法,以便正确计算f1分数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误描述:

ValueError: Target is multilabel-indicator but average='binary' . Please choose another average setting,one of [None, 'micro', 'macro', 'weighted', 'samples'].

出错语句:

f1_score(y_true, y_pred)

原因分析:
sklearn.metrics模块中的precision_score,recall_score中对比的target和pred参数都是一维数组(若不是一维数组,则会认为某一行代表一个样本有多个标签),因此在模型的批训练时,获得的预测结果,需要先转换成一维数组再计算precision,recall,f1等指标。

改为:

f1_score(y_true, y_pred, 'binary')

Python将二维数组/多维数组转换为一维 详细见:
https://blog.csdn.net/qq_42251157/article/details/125091328

参考博文:https://blog.csdn.net/hoo1990/article/details/117377466

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值