介绍
这篇文章给大家分享的是有关python中topk算法的示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
直接看代码吧!
# !康德:utf - 8 def quick_index(数组,,,,结束): ,左,right =,开始,结束=,key 数组(左) ,while left & lt;右: while 才能left & lt;, right 以及数组(右),祝辞,关键: ,,right -=1 数组(左),才能=,数组(右) while 才能left & lt;, right 以及数组(左),& lt;,关键: ,,left +=1 数组(右),才能=,数组(左) ,数组(左)=,关键 return 离开 def min_num(数组,,米): ,开始,最终获得=,0,,len(数组),安康;1=,,index  quick_index(数组,,开始,结束) ,while index  !=, m: if 才能index & lt;, m: ,,index =, quick_index(数组,,指数+ 1,,结束) 其他的才能: ,,index =, quick_index(数组,,首先,,指数) ,打印(数组[m]): if __name__ ==, & # 39; __main__ # 39;:=,alist [15, 54岁,26岁,93年,17日,77年,31日,44岁,55岁,20) ,min_num(倾斜的,5)
<强>补充知识:强> <强> python numpy求top-k精度指标强>
top-k acc表示在多分类情况下取最高的k类得分的标签,与真实值匹配,只要有一个标签匹配,结果就是真的。
如对于一个有5类的多分类任务
a_real =1 a_pred =, (0.02, 0.23, 0.35, 0.38, 0.02) # top-1 时间=a_pred_label 3, match =False #前三 a_pred_label_list =, (1, 2, 3], match 真正=,
对于(精度
sklearn。精度指标提供的方法,能够直接计算得分,但是对于topk-acc就需要自己实现了:
# 5类:0,1,2,3,4 import numpy  as np a_real =, np.array ([[1], [2],, [1], [3]]) #用随机数代替分数 时间=random_score np.random.rand ((4、5)) 时间/时间=a_pred_score random_score random_score.sum(轴=1).reshape (random_score.shape [0],, 1) 时间=k 3 #前三 #以下是计算方法 时间=max_k_preds a_pred_score.argsort(轴=1)(:,- k:)(:,:: 1), #得到top-k 标签 时间=match_array np.logical_or.reduce (max_k_preds==a_real,轴=1),#得到匹配结果 时间=topk_acc_score match_array.sum (),/match_array。形状[0]
感谢各位的阅读!关于“python中topk算法的示例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!