def average_ndcg(self):
ndcg = 0.
for goal, prediction in self.instances:
if len(prediction) > 0:
dcg = 0.
max_dcg = 0.
for i, p in enumerate(prediction[:min(len(prediction), self.k)]):
if i < len(goal):
max_dcg += 1. / np.log2(2 + i)
if p in goal:
dcg += 1. / np.log2(2 + i)
ndcg += dcg/max_dcg
return ndcg / len(self.instances)
evaluation.py 文件源码
python
阅读 29
收藏 0
点赞 0
评论 0
评论列表
文章目录