版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoxu2050/article/details/83651043
Ranking的中文意思是排行、排名的意思,可以网页搜索理解ranking。现在搜索“美女”,谷歌会给出网页排名,百度也会给出网页排名,每个都是一个Ranking。那如何评价排名的好坏呢?这是就会用AP(average precision)。
假如在百度搜索“美女”时,引擎返回了10个结果,其中5个正确,5个错误,排名如下:
这时候我们计算一下召回率和准确率:
precison = TP/(TP+FP)
recall = TP/(TP+FN)
只看前2个排名,TP=1,FP=1,FN=4 准确率是0.5,召回率是0.2
只看前3个排名,TP=2,FP=1,FN=3 准确率是0.67,召回率是0.4
只看前6个排名,TP=3, FP=3,FN=2 准确率0.5,召回率0.6
只看前10个排名,TP=5, FP=5,FN=0 准确率0.5,召回率1.0
在召回率不断增加过程中,准确率有时增加,有的减小,那如何评价这个ranking的好坏,计算所有召回率下准确率的平均值啊:
AP是0.62,某个召回率可能对应多个precision,计算AP用的最大precision,也就是第一个precision。
假如在百度上搜索“中国航母”,返回如下结果:
两个Query,百度的AP分别是0.62和0.44,假如搜狗的AP是0.5和0.5,这时我们就要问了,百度和搜狗的ranking算法那个更好点?这时候就需要mAP(mean average precision)了,即求的所有Query AP的平均值:
搜狗的是0.5, 0.53>0.5,百度搜索算法要略优于搜狗,是不是和你的感觉是一样的!