numpy.bincount介绍以及巧妙计算分类结果中每一类预测正确的个数

本文介绍了numpy的bincount函数在分析分类结果中的巧妙应用,不仅展示了其基本功能——计算各类别的数量,还揭示了如何通过该函数计算每一类预测正确的样本个数。通过实例代码和结果解析,阐述了利用num_classes实现对角线值获取,从而得到分类准确率的方法。

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

之前接触到bincount这个函数,简单的以为它就是计算分类结果中每一类的数量,如下:

import numpy as np
a = np.array([0,1,3,2,1])
binc = np.bincount(a)
print(binc)

结果输出是这样:

[1 2 1 1]

这个结果表示0有1个,1有两个,2和3各有一个。

但是今天又发现了一个不为人知的巧妙用法,是在一篇论文的源码中发现的。直接看代码

#假设你总共要分3类,也可设为num_classes
prediction = np.array([0,1,1,2,0,1,2])
truth = np.array([0,1,2,2,0,1,1])
#上面两行假设是你的分类结果和真实分类
hist = np.zeros((3,3))#以类数为维数的矩阵

#定义一个函数,要注意label_pred和label_true都必须是np.array()
def _fast_hist(label_pred, label_true, num_classes):

    mask = (label_true >= 0) & (label_true < num_classes)

    hist = np.bincount(                                    #这是我们要学习的bincount函数

        num_classes * label_true[mask].astype(int) +

        label_pred[mask], minlength=num_classes ** 2).reshape(num_classes, num_classes)#minlength属性规定了bincount
                                                                                   函数返回的数组的最小长
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值