def eval_precision(y_true, y_pred, k = 10, rel_threshold=0.):
if k <= 0:
return 0.
s = 0.
y_true = np.squeeze(y_true)
y_pred = np.squeeze(y_pred)
c = zip(y_true, y_pred)
random.shuffle(c)
c = sorted(c, key=lambda x:x[1], reverse=True)
ipos = 0
precision = 0.
for i, (g,p) in enumerate(c):
if i >= k:
break
if g > rel_threshold:
precision += 1
precision /= k
return precision
评论列表
文章目录