多类别分类中的Precision,Recall,F1性能计算

        当我训练自己设计的网络代码之后,如何去评价这个网络的好坏,这就需要用到很多性能指标,其中Precision,Recall和F1是常见的性能评价指标。

        我在学习这三个指标的计算的时候,看了很多博客,发现很多博客对这几个性能指标的评价就好像是在说绕口令一样,让我的大脑很难理解这部分的内容,而且博客里面大都是用二分类的实验来举例如何计算这三个指标,也是不常用的,所以在这里我就用比较简单的语言来介绍这三个指标,争取让看到这篇博客的朋友们能一眼懂!

        我们抛开学术性的描述TP,FN,FP,TN这几个部分的理解,直接从例子开始介绍。

        在一个单分类多标签的训练任务中,如何去计算Precision,Recall和F1。

        首先我们这个多标签的任务中是动物分类标签,一共有12类,分别是【老鼠,牛,虎,兔,龙,蛇,马,羊,猴,坤坤,狗,猪】。我选中其中的老鼠来计算三个指标。

        注意,这三个指标的计算是按照每一类来计算的,我们在论文中看到的是多个类别的平均值。

        在整个数据集中,老鼠一共有100张图片,其中我们划分训练集和测试集28开,训练集80张图片,测试集20张图片。现在我们用80张图片对网络进行训练,经过60个epoch训练完毕,现在使用测试集的20张图片进行测试。

        经过测试发现,20张图片中网络正确预测了10张,但是在其他11个类的预测中预测错误,预测了老鼠20次,通过这几个数据就可以计算老鼠类的这三个性能指标。

Precision = TP/(TP+FP)

        TP = 网络预测结果是老鼠且预测正确的数量

        FP = 网络预测结果是老鼠且预测错误的数量

        TP + FP = 网络预测结果是老鼠的数量

所以结果就是:

 Recall = TP/(TP+FN)

        TP = 网络预测结果是老鼠且预测正确的数量

        FN = 网络预测结果不是老鼠且预测图片的label是老鼠

        TP+FN = 测试集中老鼠标签的图片的数量

所以结果就是:

 Recall = 10/(10+10)

两个的计算结果竟然是一样的,好巧好巧。


        最后是F1的计算,这个计算需要用到前两个指标,也没有什么理解,直接算就完事了

F1 = \frac{2}{(\frac{1}{Precision} + \frac{1}{Recall})}

        这是老鼠类的计算,那么其他类的计算也是一样,然后对所有类进行平均就可以了,希望这篇文章能对你有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值