[开发技巧]·TopN指标计算方法

1.概念介绍

在图片分类的中经常可以看到Top-1,Top-5等TopN准确率(或者时错误率)。

那这个TopN是什么意思呢?首先Top-1准确率最好理解,就是我们用argmax从网络输出取到的预测index与真实index的准确率。

Top-5准确率就是指从网络输出取到的预测概率最大5个index与真实的index进行比对,5个之中任意一个比对成功就算预测正确了。同理Top-3就是指概率最大3个index.

2.问题分析

可以发现Top-1的准确率很容易计算直接通过argmax就可以了,演示代码如下:

import numpy as np

lists = np.array([0.4,0.2,0.3,0.1])

index = np.argmax(lists)

score = lists[index]

大于1的时候就没法使用argmax了,其实在Numpy中有argsort能帮到我们。

np.argmax的功能就是对list从小到大进行排序,最后输出排序过后每个元素本来的下标。下面用代码来解释一下:

import numpy as np

lists = np.array([0.4,0.2,0.3,0.1])

indexs = np.argsort(lists)

print(indexs)

# [3 1 2 0]

结果怎么理解呢?其实第一步先对[0.4,0.2,0.3,0.1] -->[0.1,0.2,0.3,0.4]排序,再对排序好的[0.1,0.2,0.3,0.4]找出每个元素原始下标,例如0.1的原始下标为3,0.2的下标为2 .. 最终得到[3 1 2 0]

这个怎么应用到TopN计算中呢?其实就很容易了,可以利用argsort取得排好序元素的下标,再通过下标找到对应的概率值即可:以Top-3指标举例

import numpy as np

lists = np.array([0.4,0.2,0.3,0.1])

def get_top_n(lists,n):
sort_index = np.argsort(lists)
n_index = sort_index[-n:]#因为是按照概率从大到小取n个
indexs = []
scores = []
for index in reversed(n_index):#从大到小取,所以通过reversed()倒置一下
indexs.append(index)
scores.append(lists[index])
return(indexs,socres) indexs,scores = get_top_n(lists,3) print(indexs,scores)
#[0, 2, 1] [0.4, 0.3, 0.2]

输出结果是[0, 2, 1] [0.4, 0.3, 0.2],表示0的种类概率0.4,正确地完成了我们设想的功能。

最新文章

  1. 模块化之Spring3.0 web fragment和gradle构建项目
  2. C++基础知识(5)---类和对象
  3. svn上传工程之后下载,打开下载之后的工程缺少文件
  4. Sea.js学习3——Sea.js的CMD 模块定义规范
  5. [POJ 1155] TELE (树形dp)
  6. 4-Highcharts 3D图之3D普通饼图
  7. 对Java不能多继承,只能单继承,却可以实现多个接口的理解
  8. linux安装apache软件的过程
  9. 回调函数的意义以及python实现
  10. HDU 3265 Posters(线段树)
  11. 一个Restful Api的访问控制方法
  12. 用DIV+CSS做网页里要设置body和*规定内容
  13. CodeForces 614B Gena's Code
  14. java 与操作系统进程同步问题(一)————互斥问题
  15. Java7里try-with-resources分析
  16. HTMLParser和BeautifulSoup使用入门和总结
  17. postgresql 清空数据表 truncate
  18. 【Java深入研究】7、ThreadLocal详解
  19. phpcms9-6-0 一键getshell工具
  20. uva-10716-贪心

热门文章

  1. centos7安装es
  2. 【Python数据分析】用户通话行为分析
  3. Python3数据结构汇总
  4. Python CGI编程Ⅲ
  5. layui 批量上传
  6. C# SqlDataReader
  7. 计算机网络(七),TCP与UDP的区别
  8. make文件基础用法
  9. 「雅礼集训 2017 Day5」远行
  10. 二分mid的取法