一個評測指標就是MAP(Mean Average Precision)平均精度均值。
來源01:Mean Average Precision(MAP)
來源02:一個評測指標就是MAP(Mean Average Precision)平均精度均值
來源03:MAP(Mean Average Precision)
MAP可以由它的三個部分來理解:P,AP,MAP
先說P(Precision)精度,正確率。在信息檢索領域用的比較多,和正確率一塊出現的是找回率Recall。對於一個查詢,返回了一系列的文檔,正確率指的是返回的結果中相關的文檔占的比例,定義為:precision=返回結果中相關文檔的數目/返回結果的數目;
而召回率則是返回結果中相關文檔占所有相關文檔的比例,定義為:Recall=返回結果中相關文檔的數目/所有相關文檔的數目。
正確率只是考慮了返回結果中相關文檔的個數,沒有考慮文檔之間的序。對一個搜索引擎或推薦系統而言返回的結果必然是有序的,而且越相關的文檔排的越靠前越好,於是有了AP的概念。對一個有序的列表,計算AP的時候要先求出每個位置上的precision,然后對所有的位置的precision再做個average。如果該位置的文檔是不相關的則該位置 precision=0.
舉個例子(修改了引用[1]的例子):
Prediction | Correctness | Points |
1 | wrong | 0 |
2 | right | 1 / 2 |
3 | right | 2 / 3 |
4 | wrong | 0 |
5 | right | 3 / 5 |
6 | wrong | 0 |
7 | wrong | 0 |
8 | wrong | 0 |
9 | right | 4 / 9 |
10 | wrong | 0 |
可以從中看出AP的計算方法,若該位置返回的結果相關,計算該位置的正確率,若不相關,正確率置為0。若返回的這四個的相關文檔排在1,2,3,4號位,則對於的正確率都為1,AP也就等於1,可見計算方法是對排序位置敏感的,相關文檔排序的位置越靠前,檢出的相關文檔越多,AP值越大。
對MAP,則是對所有查詢的AP值求個平均。
得到的計算公式[2]:

r為相關文檔的個數,N為查詢詞的個數。
具體求解:
假設有兩個查詢,查詢1有4個相關文檔,查詢2有5個相關文檔。某系統對查詢1檢索出4個相關文檔,其rank分別為1,2,4,7;對於查詢2檢索出3個相關文檔,其rank分別為1,3,5。
對於查詢1,AP平均正確率為:(1/1+2/2+3/4+4/7)/4=0.83
對於查詢2,AP平均正確率為:(1/1+2/3+3/5)/5=0.45
則平均正確率均值為:(0.83+0.45)/2=0.64
代碼:
Github地址:https://github.com/JK-SUN/MLandDM-EvaluationMeasures 歡迎拍磚
參考:
[1]Alternate explanation of Mean Average Precision
[2]信息檢索系統導論