Precision and Recall - Information Retrieval


在資訊檢索或資料探勘的領域中,一個最基本的問題就是要如何衡量一個系統的效能?這裡指的系統效能是說:當我們進行一個Query時,在一個檢索或搜尋系統中,到底回傳回來的結果,是不是使用者想要的?回傳的效率有多好?
這裡介紹兩個用來評估檢索結果的方法,叫做【查準率(Precision)】和【查全率(Recall)】


先來看看定義:
  • Precision = Relevant Documents Retrieved / Total Retrieved Documents
  • Recall = Relevant Documents Retrieved / Total Relevant Docuements
從上面的公式可以看出來,Precision和Recall的分子都是Relevant Document Retrieved(抓回來的相關文章數目),差別的地方在於Precision的分母是【抓回文章的總數】;而Recall的分母則是【相關文章的總數】。


舉個例子:假設現在資料庫中有10000筆資料,和美食有關的文章有500篇。使用者在輸入美食的關鍵字後,回傳的文章有4000篇,其中有400篇是和美食有關的。

Precision = 400 / 4000 = 10%
Recall = 400 / 500 = 80%

在這裡代表的意思就是,這個搜尋引擎的查準率是10%、查全率是80%。

繼續延伸下去,如果我們要做比較細部的分析,可以將以上的兩個比率畫分成下面的四個象限:


tp : 代表文章和此query有相關,而且系統判斷正確回傳。
fp : 代表文章和此query沒有相關,但是系統判斷錯誤卻被搜尋引擎回傳。
fn : 代表文章和此query有相關,但是系統判斷錯誤沒有回傳。
tn : 代表文章和此query沒有相關,而且系統判斷正確沒有回傳。

所以我們得出:
Precision = tp / tp+fp
Recall = tp / tp+fn

其實這和統計上的Type 1 error、Type 2 error 也有相關,不過在這裡就不再多說了...,有興趣的可以到Google找找,相信會有很多資訊的。

Share this post!

Bookmark and Share

6 意見:

Wei 提到...

写的很好,浅显易懂

kevingo 提到...

感謝您 :")

Sam(From Nutn) 提到...

不好意思 可以借我引用來做作業嗎?因為您寫得很淺顯易懂

kevingo 提到...

您好,請用不要客氣:D

lighter 提到...

您好,這篇可否借轉到我的部落格呢?謝謝

kevingo 提到...

歡迎~只要註明來源即可:)