1. 程式人生 > >怎麼理解ranking和mAP?

怎麼理解ranking和mAP?

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,百度搜索演算法要略優於搜狗,是不是和你的感覺是一樣的!