1. 程式人生 > >幾個易混淆的概念(準確率-召回率,擊中率-虛警率,PR曲線和mAP,ROC曲線和AUC)

幾個易混淆的概念(準確率-召回率,擊中率-虛警率,PR曲線和mAP,ROC曲線和AUC)

準確率、召回率、F1

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

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

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

圖示表示如下:

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

。一般情況,用不同的閥值,統計出一組不同閥值下的精確率和召回率,如下圖:

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

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

  1. 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計算工具:

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

參考連結: