推荐系统评估指标(Rank)

Mean Average Precision (MAP)

$AP=\frac {\sum_{j=1}^{n_i}P(j)\cdot y_{i,j}}{\sum_{j=1}^{n_i}y_{i,j}}$

其中,$y_{i,j}$: 排序中第j个元素对于查询i是否是相关的;相关为1,不相关为0。

$P(j)=\frac {\sum_{k:\pi_{i}(k)\leq\pi_{i}(j)} y_{i,k}}{\pi_{i}(j)}$

其中,$\pi_{i}(j)$为J的排序位置。

例如:

rank_no 是否相关
1 1
2 0
3 1
4 0
5 1
6 0

则根据AP计算公式: $AP=(1*1 + (1/2) *0+ (2/3)*1 + (2/4)*0 + (3/5)*0 + (3/6)*0) /3$

AP的最大值是1,MAP就是对所有user求均值。

Mean Reciprocal Rank (MRR)

$MRR=\frac{1}{\mid Q \mid} \sum_{i=1}^{\mid Q \mid} \frac{1}{rank_i}$

其中|Q|是查询个数,ranki是第i个查询,第一个相关的结果所在的排列位置。

例如:

Query Result Correct response Rank Reciprocal rank
cat catten,cati,cats cats 3 1/3
tori torii,tori,toruses tori 2 1/2
virus viruses,virii,viri viruses 1 1

对于三个查询,每个查询的ranki分别为3、2、1。所以,MRR=1/3∗(1/3+1/2+1/1)

NDCG,pre,rec的计算较为简单,已在CSDN中介绍,这里省略。