NDCG的计算方法首先需要计算折扣累积增益(DCG)。DCG的计算公式为: 其中,(rel_i)表示在位置(i)的项目的相关性评分,(k)是考虑的结果数量。DCG通过对位置进行对数折扣,降低了较低位置项目的贡献,反映了用户更倾向于查看排名靠前的结果。 然而,DCG的一个主要局限性在于它不考虑结果集的长度差异,这可能导致较长的结...
可知\color{blue} {\text{NDCG}@k} 的取值范围为 \color{blue} {[0, 1]}; 若\color{blue} {\text{top-k}} 个文档的Gain都为 \color{blue} 0 ,即排在前面 \color{blue} {\text{top-k}} 位置的文档,它们相关性分数均为 \color{blue} 0 ,则此时的 \color{blue} {\text{NDCG}@k = 0}...
即:位置越靠后,缩小的比例就越大 现在的问题是,DCG仅仅是针对一个用户的推荐列表进行评估,但是每个用户的推荐列表长度不是全都一样,那么要在所有用户之间横向比较的话需要将数据归一化,即引入NDCG. N D C G u @ K = D C G u @ K I D C G u NDCG_u@K=\frac{DCG_u@K}{IDCG_u}NDCGu@K=...
NDCG的计算公式如下:公式:其中,r(i)表示项目i与用户的相关性分数,通常取值为0或1。公式中,log(1 + r(i))用于归一化,以反映相关性的对数增益。当相关性分数r(i)只有(0,1)两种取值时,DCG@K的表达更直观。算法返回的排序列表中的项目若出现在真实交互列表中,则分子加1;反之,则不计入...
CG(cumulative gain,累计增益)可以用于评价基于打分/评分的个性推荐系统。假设我们推荐k个物品,这个推荐列表的CGk计算公式如下: \[CG_k=\sum_{i=1}^k \text{rel}_i \] \(rel_i\)表示第\(k\)个物品的相关性或者评分。假设我们共推荐\(k\)部电影,\(rel_i\)可以是用户对第\(i\)部电影的评分。
CG(cumulative gain,累计增益)可以用于评价基于打分/评分的个性推荐系统。假设我们推荐k个物品,这个推荐列表的CGk计算公式如下: CGk=∑i=1kreli. reli表示第k个物品的相关性或者评分。假设我们共推荐k个电影,reli可以是用户对第i部电影的评分。 比如豆瓣给用户推荐了五部电影, ...
假设我们推荐k个物品,这个推荐列表的计算公式如下:表示第k个物品的相关性或者评分。假设我们共推荐k个电影...推荐的次序,在此基础之后我们引入对物品顺序的考虑,就有了DCG(discountedCG),折扣累积增益。公式如下: 仍然是 ,评分仍是5, 3, 2, 1, 2 那么这个推荐列表的DCG是...
1 else n # 如果规定了n,就计算ndcg@n;如果没有,就计算ndcg@len(current[i]) idcg = dcg_at_n(sorted(golden[i], reverse=True), n=k) # 计算idcg@k dcg = dcg_at_n(current[i], n=k) # 计算dcg@k tmp_ndcg = 0 if idcg == 0 else dcg / idcg # 计算当前搜索结果的ndcg@k ndcgs...
CG表示对K个item的Gain进行累加,其中Gain表示列表中每一个item的相关性分数,CG即: 二、DCG,折损累计增益 Discounted cumulative gain DCG提出:如果有效结果在列表中排的较低的话,应该对列表的评分惩罚,惩罚和有效结果的排位有关。所以就加了衰减因子:
1. 公式 DCG: 其中, K是推荐列表的大小; i 是指推荐列表中的第 i i i个推荐项; 是指推荐项 i i i 是否被用户点击,若点击则为 1 1 1,否则为 0 0 0,在实际测试中,我们通常吧推荐列表中在测试集的推荐项视为被用户点击的推荐项,不在测试集中的推荐项视为未被用户点击的推荐项; ...