轉自:
http://uwei.blogbus.com/logs/11424864.html外行人做互聯網,很多概念不懂。就拿最基礎的“召回率”和“準確率”這種概念,看看網上資料知道大概,自己用的時候,腦子里繞著彎兒能想明白,可碰到別人活用的時候,腦子里還是沒法一下子反應過來,還是要繞彎想一下。特地找了些資料,將這兩個概念整理一下,希望能更熟練。
召回率和準確率是搜索引擎(或其它檢索系統)的設計中很重要的兩個概念和指標。
召回率:Recall,又稱“查全率”;
準確率:Precision,又稱“精度”、“正確率”。
在一個大規模數據集合中檢索文檔時,可把集合中的所有文檔分成四類:
A:檢索到的,相關的 (搜到的也想要的)
B:檢索到的,但是不相關的 (搜到的但沒用的)
C:未檢索到的,但卻是相關的 (沒搜到,然而實際上想要的)
D:未檢索到的,也不相關的 (沒搜到也沒用的)
通常我們希望:數據庫中相關的文檔,被檢索到的越多越好,這是追求“查全率”,即A/(A+C),越大越好。
同時我們還希望:檢索到的文檔中,相關的越多越好,不相關的越少越好,這是追求“準確率”,即A/(A+B),越大越好。
歸納如下:
召回率:檢索到的相關文檔 比 庫中所有的相關文檔
準確率:檢索到的相關文檔 比 所有被檢索到的文檔
“召回率”與“準確率”雖然沒有必然的關系(從上面公式中可以看到),然而在大規模數據集合中,這兩個指標卻是相互制約的。
由于“檢索策略”并不完美,希望更多相關的文檔被檢索到時,放寬“檢索策略”時,往往也會伴隨出現一些不相關的結果,從而使準確率受到影響。
而希望去除檢索結果中的不相關文檔時,務必要將“檢索策略”定的更加嚴格,這樣也會使有一些相關的文檔不再能被檢索到,從而使召回率受到影響。
凡是設計到大規模數據集合的檢索和選取,都涉及到“召回率”和“準確率”這兩個指標。而由于兩個指標相互制約,我們通常也會根據需要為“檢索策略”選擇一個合適的度,不能太嚴格也不能太松,尋求在召回率和準確率中間的一個平衡點。這個平衡點由具體需求決定。
其實,準確率(precision,精度)比較好理解。往往難以迅速反應的是“召回率”。我想這與字面意思也有關系,從“召回”的字面意思不能直接看到其意義。
我覺得“召回率”這個詞翻譯的不夠好。“召回”在中文的意思是:把xx調回來。比如sony電池有問題,廠家召回。
既然說翻譯的不好,我們回頭看“召回率”對應的英文“recall”,recall除了有上面說到的“order sth to return”的意思之外,還有“remember”的意思。
Recall:the ability to remember sth. that you have learned or sth. that has happened in the past.
這里,recall應該是這個意思,這樣就更容易理解“召回率”的意思了。
當我們問檢索系統某一件事的所有細節時(輸入檢索query),Recall就是指:檢索系統能“回憶”起那些事的多少細節,通俗來講就是“回憶的能力”。能回憶起來的細節數 除以 系統知道這件事的所有細節,就是“記憶率”,也就是recall——召回率。
這樣想,要容易的多了。