ndcg指标(normalized discounted cumulative gain)是一种衡量排序结果质量的指标,它反映了排序结果的好坏,常用于搜索引擎、推荐系统等研究领域。 ndcg指标的计算方法是:首先,将排序结果的每个位置的得分进行归一化处理,然后,按照位置的顺序,计算每个位置的累计得分,最后,将归一化后的累计得分除以理论最优的累计得分,得到nd...
然后再对标注的分数从大到小重排,再计算一次DCG,这一次计算出的DCG就是iDCG,让二者相除得到的就是nDCG。 最后附一个在隐式反馈数据集计算ndcg的样例代码 importnumpyasnpnp.random.seed(2021)classModel:def__init__(self,k):self.k=kself.item_size=50def__call__(self,users):# 模型随机返回 k 个 item...
K为NDCG@K中的K NDCG就是归一化的DCG NDCG=DCGIDCGNDCG=DCGIDCG 额外讲一下个人理解,不一定正确: 在普通推荐中,测试集中正样本有一些交互的物品,取之中的k个,若k不足K就剩下的取负样本,把预测结果的分数从大到小排列,每有一个是在正样本中,就对DCG进行累加,IDCG的计算与正样本的排列顺序无关,因为正样本...
maxi): """python calculate ndcg""" # 标注区间要映射为从0到1,maxi是最高标准,mini应该是0 nlst = [i / maxi for i in lst] nmap = sum(nlst) / len(nlst) nlst = sorted(lst, reverse=True) dcg = sum(j / math.log
NDCG 归一化 (的)折损 累计 增益:对DCG做归一化,使得指标具有可比性。 归一化的方式是引入IDCG (Ideal Discounted Cumulative Gain),理想情况下的折损累计增益。即,认为最完美的排序方式是,增益大的排在前面,此时的DCG是最大的,也就是IDCG。 计算 DCG ...
简介:nDCG(Normalized Discounted Cumulative Gain)归一化折损累计增益是一种用于评估排序模型性能的指标,它考虑了两个方面:排序的正确性和相关性的程度。 介绍 nDCG(Normalized Discounted Cumulative Gain)归一化折损累计增益是一种用于评估排序模型性能的指标,它考虑了两个方面:排序的正确性和相关性的程度。
NDCG,Normalized Discounted cumulative gain 直接翻译为归一化折损累计增益,可能有些晦涩,没关系下面重点来解释一下这个评价指标。这个指标通常是用来衡量和评价搜索结果算法(注意这里维基百科中提到了还有推荐算法,但是我个人觉得不太适合推荐算法,后面我会给我出我的解释)。DCG的两个思想: ...
三、NDCG,归一化折损累计增益 Normalized Discounted Cumulative Gain 3.1 NDCG指标 常用作排序模型的指标评估。DCG没有考虑到推荐列表和每个检索中真正有效结果(test items list) 的个数,所以最后引入NDCG,就是标准化后的DCG。比如小A同学搜了一个query,引擎返回一个推荐列表(搜索结果),一般从2个方面衡量列表质量: ...
Normalized Discounted Cumulative Gain(归一化折损累计增益) NDCG用作排序结果的评价指标,评价排序的准确性。 推荐系统通常为某用户返回一个item列表,假设列表长度为K,这时可以用NDCG@K评价该排序列表与用户真实交互列表的差距。 解释 增益(Gain) 表
PyTorch实现NDCG指标计算方案 NDCG(Normalized Discounted Cumulative Gain)是一种评估排序模型性能的指标,广泛应用于信息检索和推荐系统领域。本文将介绍如何在PyTorch框架下实现NDCG指标的计算。 1. 理解NDCG NDCG的核心思想是将模型预测的排序结果与理想排序结果进行比较,计算两者之间的差异。具体来说,NDCG的计算公式如下:...