1. 程式人生 > >準確率和召回率(precision&recall)

準確率和召回率(precision&recall)

在機器學習、推薦系統、資訊檢索、自然語言處理、多媒體視覺等領域,經常會用到準確率(precision)、召回率(recall)、F-measure、F1-score 來評價演算法的準確性。

一、準確率和召回率(P&R)

以文字檢索為例,先看下圖


其中,黑框表示檢索域,我們從中檢索與目標文字相關性大的項。圖中黃色部分(A+B)表示檢索域中與目標文字先關性高的項,圖中

A+C部分表示你的演算法檢索出的項。A、B、C的含義圖中英文標出。

準確率:


召回率:


一般來說,準確率表示你的演算法檢索出來的有多少是正確的,召回率表示所有準確的條目中有多少被檢索出來。

準確率和召回率的關係

通常,我們希望準確率和召回率均越高越好,但事實上這兩者在某些情況下是矛盾的。比如我們只搜出了一個結果,此結果是正確的,求得precisin等於1。但是由於只搜出一個結果,recall值反而很低,接近於0。所以需要綜合考量,下面介紹F-measure。

二、F-measure

F-measure又稱F-score,其公式為:


其中F2值,更加註重召回率;F0.5值更加重視準確率。

當beta=1時,就是F1-score:


F-measure綜合了precision和recall,其值越高,通常表示演算法效能越好。

三、Average_precision(AP)

平均正確率(AP):對不同召回率點上的正確率進行平均。 (1)未插值的AP:某個查詢Q共有6個相關結果,某系統排序返回的文件中,其中相關文件有5篇,其位置分別是第1,第2,第5,第10,第20位,則AP=(1/1+2/2+3/5+4/10+5/20+0)/6 (2)插值的AP:在召回率分別為0,0.1,0.2,...,1.0的十一個點上的正確率求平均,等價於11點平均。
(3)只對返回的相關文件進行計算的AP,AP=(1/1+2/2+3/5+4/10+5/20)/5,傾向於那些快速返回結果的系統,沒有考慮召回率。