自然語言處理技術之準確率(Precision)、召回率(Recall)、F值(F-Measure)簡介

下面簡單列舉幾種常用的推薦系統評測指標:

1、準確率與召回率(Precision & Recall)

準確率召回率是廣泛用於信息檢索和統計學分類領域的兩個度量值,用來評價結果的質量。其中精度是檢索出相關文檔數與檢索出的文檔總數的比率,衡量的是檢索系統的查準率;召回率是指檢索出的相關文檔數和文檔庫中所有的相關文檔數的比率,衡量的是檢索系統的查全率

一般來說,Precision就是檢索出來的條目(比如:文檔、網頁等)有多少是準確的,Recall就是所有準確的條目有多少被檢索出來了。

正確率、召回率和 F 值是在魚龍混雜的環境中,選出目標的重要評價指標。不妨看看這些指標的定義先:

    1. 正確率 = 提取出的正確信息條數 /  提取出的信息條數     

    2. 召回率 = 提取出的正確信息條數 /  樣本中的信息條數    

兩者取值在0和1之間,數值越接近1,查準率或查全率就越高。   

    3. F值  = 正確率 * 召回率 * 2 / (正確率 + 召回率) (F 值即爲正確率和召回率的調和平均值)

不妨舉這樣一個例子:某池塘有1400條鯉魚,300只蝦,300只鱉。現在以捕鯉魚爲目的。撒一大網,逮着了700條鯉魚,200只蝦,100只鱉。那麼,這些指標分別如下:

正確率 = 700 / (700 + 200 + 100) = 70%

召回率 = 700 / 1400 = 50%

F值 = 70% * 50% * 2 / (70% + 50%) = 58.3%

不妨看看如果把池子裏的所有的鯉魚、蝦和鱉都一網打盡,這些指標又有何變化:

正確率 = 1400 / (1400 + 300 + 300) = 70%

召回率 = 1400 / 1400 = 100%

F值 = 70% * 100% * 2 / (70% + 100%) = 82.35%        

由此可見,正確率是評估捕獲的成果中目標成果所佔得比例;召回率,顧名思義,就是從關注領域中,召回目標類別的比例;而F值,則是綜合這二者指標的評估指標,用於綜合反映整體的指標

當然希望檢索結果Precision越高越好,同時Recall也越高越好,但事實上這兩者在某些情況下有矛盾的。比如極端情況下,我們只搜索出了一個結果,且是準確的,那麼Precision就是100%,但是Recall就很低;而如果我們把所有結果都返回,那麼比如Recall是100%,但是Precision就會很低。因此在不同的場合中需要自己判斷希望Precision比較高或是Recall比較高。如果是做實驗研究,可以繪製Precision-Recall曲線來幫助分析。

2、綜合評價指標(F-Measure)

P和R指標有時候會出現的矛盾的情況,這樣就需要綜合考慮他們,最常見的方法就是F-Measure(又稱爲F-Score)。

F-Measure是Precision和Recall加權調和平均

當參數α=1時,就是最常見的F1,也即

可知F1綜合了P和R的結果,當F1較高時則能說明試驗方法比較有效。

3、E值

E值表示查準率P和查全率R的加權平均值,當其中一個爲0時,E值爲1,其計算公式:

b越大,表示查準率的權重越大。

4、平均正確率(Average Precision, AP)

平均正確率表示不同查全率的點上的正確率的平均。


在信息檢索、分類體系中,有一系列的指標,搞清楚這些指標對於評價檢索和分類性能非常重要,因此最近根據網友的博客做了一個彙總。

準確率、召回率、F1

信息檢索、分類、識別、翻譯等領域兩個最基本指標是召回率(Recall Rate)準確率(Precision Rate),召回率也叫查全率,準確率也叫查準率,概念公式:


    召回率(Recall)      =  系統檢索到的相關文件 / 系統所有相關的文件總數

   準確率(Precision) =  系統檢索到的相關文件 / 系統所有檢索到的文件總數

圖示表示如下:


注意:準確率和召回率是互相影響的,理想情況下肯定是做到兩者都高,但是一般情況下準確率高、召回率就低,召回率低、準確率高,當然如果兩者都低,那是什麼地方出問題了。一般情況,用不同的閥值,統計出一組不同閥值下的精確率和召回率,如下圖:

 

 

如果是做搜索,那就是保證召回的情況下提升準確率;如果做疾病監測、反垃圾,則是保準確率的條件下,提升召回。

所以,在兩者都要求高的情況下,可以用F1來衡量。

F1 = 2 * P * R / (P + R) 


公式基本上就是這樣,但是如何算圖1中的A、B、C、D呢?這需要人工標註,人工標註數據需要較多時間且枯燥,如果僅僅是做實驗可以用用現成的語料。當然,還有一個辦法,找個一個比較成熟的算法作爲基準,用該算法的結果作爲樣本來進行比照,這個方法也有點問題,如果有現成的很好的算法,就不用再研究了。

 

AP和mAP(mean Average Precision)

mAP是爲解決P,R,F-measure的單點值侷限性的。爲了得到 一個能夠反映全局性能的指標,可以看考察下圖,其中兩條曲線(方塊點與圓點)分佈對應了兩個檢索系統的準確率-召回率曲線

 

可以看出,雖然兩個系統的性能曲線有所交疊但是以圓點標示的系統的性能在絕大多數情況下要遠好於用方塊標示的系統。

從中我們可以 發現一點,如果一個系統的性能較好,其曲線應當儘可能的向上突出。

更加具體的,曲線與座標軸之間的面積應當越大。

最理想的系統, 其包含的面積應當是1,而所有系統的包含的面積都應當大於0。這就是用以評價信息檢索系統的最常用性能指標,平均準確率mAP其規範的定義如下:(其中P,R分別爲準確率與召回率)


ROC和AUC

ROC和AUC是評價分類器的指標,上面第一個圖的ABCD仍然使用,只是需要稍微變換。



回到ROC上來,ROC的全名叫做Receiver Operating Characteristic。

ROC關注兩個指標

   True Positive Rate ( TPR )  = TP / [ TP + FN] ,TPR代表能將正例分對的概率

   False Positive Rate( FPR ) = FP / [ FP + TN] ,FPR代表將負例錯分爲正例的概率

在ROC 空間中,每個點的橫座標是FPR,縱座標是TPR,這也就描繪了分類器在TP(真正的正例)和FP(錯誤的正例)間的trade-off。ROC的主要分析工具是一個畫在ROC空間的曲線——ROC curve。我們知道,對於二值分類問題,實例的值往往是連續值,我們通過設定一個閾值,將實例分類到正類或者負類(比如大於閾值劃分爲正類)。因此我們可以變化閾值,根據不同的閾值進行分類,根據分類結果計算得到ROC空間中相應的點,連接這些點就形成ROC curve。ROC curve經過(0,0)(1,1),實際上(0, 0)和(1, 1)連線形成的ROC curve實際上代表的是一個隨機分類器。一般情況下,這個曲線都應該處於(0, 0)和(1, 1)連線的上方。如圖所示。


用ROC curve來表示分類器的performance很直觀好用。可是,人們總是希望能有一個數值來標誌分類器的好壞。


於是Area Under roc Curve(AUC)就出現了。顧名思義,AUC的值就是處於ROC curve下方的那部分面積的大小。通常,AUC的值介於0.5到1.0之間,較大的AUC代表了較好的Performance。


AUC計算工具:

http://mark.goadrich.com/programs/AUC/

P/R和ROC是兩個不同的評價指標和計算方式,一般情況下,檢索用前者,分類、識別等用後者。

參考鏈接:

http://www.vanjor.org/blog/2010/11/recall-precision/

http://bubblexc.com/y2011/148/

http://wenku.baidu.com/view/ef91f011cc7931b765ce15ec.html


轉自於博客: http://blog.csdn.net/mousever/article/details/48622163


微信公衆號:自然語言處理技術,歡迎關注: 
這裏寫圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章