關於召回率和準確率的理解

2021-06-19 11:04:45 字數 4491 閱讀 7527

知道意思,但是有時候要很清晰地向同學介紹則有點轉不過彎來。

召回率和準確率是資料探勘中**、網際網路中的搜尋引擎等經常涉及的兩個概念和指標。

召回率:recall,又稱「查全率」——還是查全率好記,也更能體現其實質意義。

準確率:precision,又稱「精度」、「正確率」。

以檢索為例,可以把搜尋情況用下圖表示:

相關

不相關

檢索到

a

b

未檢索到

c

d

a:檢索到的,相關的                (搜到的也想要的)

b:檢索到的,但是不相關的          (搜到的但沒用的)

c:未檢索到的,但卻是相關的        (沒搜到,然而實際上想要的)

d:未檢索到的,也不相關的          (沒搜到也沒用的)

如果我們希望:被檢索到的內容越多越好,這是追求「查全率」,即a/(a+c),越大越好。

如果我們希望:檢索到的文件中,真正想要的、也就是相關的越多越好,不相關的越少越好,

這是追求「準確率」,即a/(a+b),越大越好。

「召回率」與「準確率」雖然沒有必然的關係(從上面公式中可以看到),在實際應用中,是相互制約的。

要根據實際需求,找到乙個平衡點。

往往難以迅速反應的是「召回率」。我想這與字面意思也有關係,從「召回」的字面意思不能直接看到其意義。

「召回」在中文的意思是:把xx調回來。「召回率」對應的英文「recall」,

recall除了有上面說到的「order sth to return」的意思之外,還有「remember」的意思。

當我們問檢索系統某一件事的所有細節時(輸入檢索query查詢詞),

recall指:檢索系統能「回憶」起那些事的多少細節,通俗來講就是「回憶的能力」。

「能回憶起來的細節數」 除以 「系統知道這件事的所有細節」,就是「記憶率」,

也就是recall——召回率。簡單的,也可以理解為查全率。

根據自己的知識總結的,定義應該肯定對了,在某些表述方面可能有錯誤的地方。

假設原始樣本中有兩類,其中:

1:總共有 p個類別為1的樣本,假設類別1為正例。 

2:總共有n個類別為0 的樣本,假設類別0為負例。 

經過分類後:

3:有 tp個類別為1 的樣本被系統正確判定為類別1,fn 個類別為1 的樣本被系統誤判定為類別 0,

顯然有p=tp+fn; 

4:有 fp 個類別為0 的樣本被系統誤判斷定為類別1,tn 個類別為0 的樣本被系統正確判為類別 0,

顯然有n=fp+tn; 

那麼:

精確度(precision):

p = tp/(tp+fp) ;  反映了被分類器判定的正例中真正的正例樣本的比重( 

準確率(accuracy)

a = (tp + tn)/(p+n) = (tp + tn)/(tp + fn + fp + tn);    

反映了分類器統對整個樣本的判定能力——能將正的判定為正,負的判定為負 

召回率(recall),也稱為 true positive rate:

r = tp/(tp+fn) = 1 - fn/t;  反映了被正確判定的正例佔總的正例的比重 

轉移性(specificity,不知道這個翻譯對不對,這個指標用的也不多),

也稱為 true negative

rate 

s = tn/(tn + fp) = 1 – fp/n;   明顯的這個和召回率是對應的指標,

只是用它在衡量類別0 的判定能力。 

f-measure or balanced f-score

f = 2 *  召回率 *  準確率/ (召回率+準確率);這就是傳統上通常說的f1 measure,

另外還有一些別的f measure,可以參考下面的鏈結 

上面這些介紹可以參考: 

同時,也可以看看:

為什麼會有這麼多指標呢?

這是因為模式分類和機器學習的需要。判斷乙個分類器對所用樣本的分類能力或者在不同的應用場合時,

需要有不同的指標。 當總共有個100 個樣本(p+n=100)時,假如只有乙個正例(p=1),

那麼只考慮精確度的話,不需要進行任何模型的訓練,直接將所有測試樣本判為正例,

那麼 a 能達到 99%,非常高了,但這並沒有反映出模型真正的能力。另外在統計訊號分析中,

對不同類的判斷結果的錯誤的懲罰是不一樣的。舉例而言,雷達收到100個來襲 飛彈的訊號,

其中只有 3個是真正的飛彈訊號,其餘 97 個是敵方模擬的飛彈訊號。假如系統判斷 98 個

(97 個模擬訊號加乙個真正的飛彈訊號)訊號都是模擬訊號,那麼accuracy=98%,

很高了,剩下兩個是飛彈訊號,被截掉,這時recall=2/3=66.67%,

precision=2/2=100%,precision也很高。但剩下的那顆飛彈就會造成災害。 

因此在統計訊號分析中,有另外兩個指標來衡量分類器錯誤判斷的後果:

漏警概率(missing alarm)

ma = fn/(tp + fn) = 1 – tp/t = 1 - r;  反映有多少個正例被漏判了

(我們這裡就是真正的飛彈訊號被判斷為模擬訊號,可見ma此時為 33.33%,太高了) 

虛警概率(false alarm)

fa = fp / (tp + fp) = 1 – p;反映被判為正例樣本中,有多少個是負例。 

統計訊號分析中,希望上述的兩個錯誤概率盡量小。而對分類器的總的懲罰舊

是上面兩種錯誤分別加上懲罰因子的和:cost = cma *ma + cfa * fa。

不同的場合、需要下,對不同的錯誤的懲罰也不一樣的。像這裡,我們自然希望對漏警的懲罰大,

因此它的懲罰因子 cma 要大些。 

個人觀點:雖然上述指標之間可以互相轉換,但在模式分類中,

一般用 p、r、a 三個指標,不用ma和 fa。而且統計訊號分析中,也很少看到用 r 的。

好吧,其實我也不是

ir專家,但是我喜歡

ir,最近幾年國內這方面研究的人挺多的,

googleir"

資訊檢索x科普

"系列也許可以幫助你。(我可能寫的不是很快,見諒)

至於為什麼名字中間帶乙個字母x呢?

為什麼先講

precision

和recall

呢?因為

ir中很多演算法的評估都用到

precision

和recall

來評估好壞。所以我先講什麼是"好人

",再告訴你他是"好人

"先看下面這張圖來理解了,後面再具體分析。下面用p代表

precision,r

代表recall

通俗的講,

precision 

就是檢索出來的條目中(比如網頁)有多少是準確的,

recall

就是所有準確的條目有多少被檢索出來了。

下面這張圖介紹

true positive

,false negative

等常見的概念,p和

r也往往和它們聯絡起來。

我們當然希望檢索的結果

p越高越好,

r也越高越好,但事實上這兩者在

某些情況下是矛盾

的。比如極端情況下,我們只搜出了乙個結果,且是準確的,那麼p就是

100%

,但是r

就很低;而如果我們把所有結果都返回,那麼必然r是

100%

,但是p

很低。因此在不同的場合中需要自己判斷希望

p比較高還是

r比較高。如果是做實驗研究,可以繪製

precision-recall

曲線來幫助分析(我應該會在以後介紹)。

前面已經講了,p和

r指標有的時候是矛盾的,那麼有沒有辦法綜合考慮他們呢?我想方法肯定是有很多的,最常見的方法應該就是

f measure了,有些地方也叫做

f score

,都是一樣的。

f measure

是precision

和recall

加權調和平均:

f = (a^2+1)p*r / a^2p +r

當引數a=1

時,就是最常見的

f1了:

f1 = 2p*r / (p+r)

很容易理解,

f1綜合了p和

r的結果。

關於召回率和準確率的理解

知道意思,但是有時候要很清晰地向同學介紹則有點轉不過彎來。召回率和準確率是資料探勘中 網際網路中的搜尋引擎等經常涉及的兩個概念和指標。召回率 recall,又稱 查全率 還是查全率好記,也更能體現其實質意義。準確率 precision,又稱 精度 正確率 以檢索為例,可以把搜尋情況用下圖表示 相關 ...

召回率 和 準確率

首先,要先理解,tp,真正,將正類 成正類數 對了 fn,假負,將正類 成負類數 錯了 fp,假正,將負類 成正類數 錯了 tn,真負,將負類 成負類數 對了 第一字母是判斷的對錯,第二字母是判斷的對錯的類別 類別 yesno 實際類別 yestp fnno fptn 準確率 針對本人,意思你給出的...

準確率和召回率

鏈結 定義 正確率 提取出的正確資訊條數 提取出的資訊條數 召回率 提取出的正確資訊條數 樣本中的資訊條數 兩者取值在0和1之間,數值越接近1,查準率或查全率就越高。f值 正確率 召回率 2 正確率 召回率 f 值即為正確率和召回率的調和平均值 不妨舉這樣乙個例子 某池塘有1400條鯉魚,300只蝦...