召回率與準確率(Precision and Recall)
未檢索到 C D
A:檢索到的,相關的 (搜到的也想要的)
B:檢索到的,但是不相關的 (搜到的但沒用的)
C:未檢索到的,但卻是相關的 (沒搜到,然而實際上想要的)
D:未檢索到的,也不相關的 (沒搜到也沒用的)
通常我們希望:資料庫中相關的文件,被檢索到的越多越好,這是追求“查全率”,即A/(A+C),越大越好。
同時我們還希望:檢索到的文件中,相關的越多越好,不相關的越少越好,這是追求“準確率”,即A/(A+B),越大越好。
歸納如下:
召回率:檢索到的相關文件 比 庫中所有的相關文件
準確率:檢索到的相關文件 比 所有被檢索到的文件
“召回率”與“準確率”雖然沒有必然的關係(從上面公式中可以看到),然而在大規模資料集合中,這兩個指標卻是相互制約的。
由於“檢索策略”並不完美,希望更多相關的文件被檢索到時,放寬“檢索策略”時,往往也會伴隨出現一些不相關的結果,從而使準確率受到影響。
而希望去除檢索結果中的不相關文件時,務必要將“檢索策略”定的更加嚴格,這樣也會使有一些相關的文件不再能被檢索到,從而使召回率受到影響。
凡是設計到大規模資料集合的檢索和選取,都涉及到“召回率”和“準確率”這兩個指標。而由於兩個指標相互制約,我們通常也會根據需要為“檢索策略”選擇一個合適的度,不能太嚴格也不能太鬆,尋求在召回率和準確率中間的一個平衡點。這個平衡點由具體需求決定。
其實,準確率(precision,精度)比較好理解。往往難以迅速反應的是“召回率”。我想這與字面意思也有關係,從“召回”的字面意思不能直接看到其意義。
我覺得“召回率”這個詞翻譯的不夠好。“召回”在中文的意思是:把xx調回來。比如sony電池有問題,廠家召回。
既然說翻譯的不好,我們回頭看“召回率”對應的英文“recall”,recall除了有上面說到的“order sth toreturn”的意思之外,還有“remember”的意思。
Recall:the ability to remember sth. that you have learned or sth.that has happened in the past.
這裡,recall應該是這個意思,這樣就更容易理解“召回率”的意思了。
當我們問檢索系統某一件事的所有細節時(輸入檢索query),Recall就是指:檢索系統能“回憶”起那些事的多少細節,通俗來講就是“回憶的能力”。能回憶起來的細節數除以 系統知道這件事的所有細節,就是“記憶率”,也就是recall——召回率。
這樣想,要容易的多了。
在計算機視覺檢測影象的時候,概念很相似。