多分类问题中,计算每一个类的准确率

文章介绍了一种计算多分类任务中每个类别准确率的方法,通过使用numpy比较真实标签(targ)和预测标签(pred),统计正确预测的数量并除以类别样本总数,从而得到每个类别的准确率。示例代码展示了一个9类问题的案例,结果显示了各类别的准确率以及整体的准确率。

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

 准确率,即成功识别目标对象、甄别非目标对象 占总数的比例

在处理多分类问题时,我们常常需要查看具体类别的分类准确率,这里提供一种计算各类别准确率的方法

targ = [1,2,3,4,5,6,7,8,9, 1, 2,3,4,5,6,7,8,9]
pred = [1,2,3,4,5,6,7,8,9, 2, 1,3,4,5,6,7,8,9]  # 交换一对1 2的顺序

# 将各个训练批次的标签汇总到一起
# pred += predicted_labels.tolist() # 从神经网络中读取的数据为tensor,需要转变为list
# targ += targets.tolist()          # 不然会出现错误:
                                    # RuntimeError: Boolean value of Tensor with more than one value is ambiguous


for i in range(9):       # 种类的数量

    denominator = targ.count(i)     # 从list里获取i的数量,得到各类的样本数量
    numerator = np.equal(targ, i) & np.equal(pred, i)     
# 分别从真值、预测值中筛选目标值,并与计算 得出正确的个体
    numerator = np.sum(numerator==1)        # 统计所有正确的个体

    print('Accuracy of {:2d}: {:.5f}'.format(i,numerator/denominator))
print('Total accuracy : {:.5f} %%'.format(accuracy_score(targ, pred)))

# 输出结果
# Accuracy of  0: nan
# Accuracy of  1: 0.50000
# Accuracy of  2: 0.50000
# Accuracy of  3: 1.00000
# Accuracy of  4: 1.00000
# Accuracy of  5: 1.00000
# Accuracy of  6: 1.00000
# Accuracy of  7: 1.00000
# Accuracy of  8: 1.00000
# Total accuracy : 0.88889 %%

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值