1. 程式人生 > >真假正負例、混淆矩陣、ROC曲線、召回率、準確率、F值、AP

真假正負例、混淆矩陣、ROC曲線、召回率、準確率、F值、AP

[轉自:https://blog.csdn.net/yimingsilence/article/details/53769861]

 一、假正例和假負例

 

假正例(False Positive):預測為1,實際為0的樣本

 

假負例(False Negative):預測為0,實際為1的樣本

實際預測中,那些真正例(True Positive)和真負例(True Negative)都不會造成損失(cost)。

那麼,我們假設一個假正例的損失是LFP,一個假負例的損失是LFN。

我們可以得到一個損失矩陣:

  y^=1 y^=0
y=1 0 LFN
y=0 LFP 0

其中,y是真實值,y^是預測值。

那麼,我們可以得到一個樣本的後驗期望損失:

clip_image002

clip_image002[6]

clip_image002[8]的時候,我們會預測結果為y^1=1,此時

clip_image002[10]

假設,clip_image002[12],那麼我們可以得到決策規則:

clip_image002[14]

其中,clip_image002[16],也就是我們的決策邊界。

 

例如,c=1時,我們對假正例和假負例同等對待,則可以得到我們的決策邊界0.5。

 

二、ROC曲線

 

1.混淆矩陣(confusion matrix)

 

    針對預測值和真實值之間的關係,我們可以將樣本分為四個部分,分別是:

    真正例(True Positive,TP):預測值和真實值都為1

    假正例(False Positive,FP):預測值為1,真實值為0

    真負例(True Negative,TN):預測值與真實值都為0

    假負例(False Negative,FN):預測值為0,真實值為1

    我們將這四種值用矩陣表示(圖片引自《machine learning:A Probabilistic Perspective》):

    image

    上面的矩陣就是混淆矩陣。

   2.ROC曲線

     通過混淆矩陣,我們可以得到真正例率(True Positive Rate , TPR):

    clip_image002

    我們還可以得到假正例率(False Positive Rate  , FPR):

    clip_image002[5]

    可以看到,TPR也就是我們所說的召回率,那麼只要給定一個決策邊界閾值clip_image002[7],我們可以得到一個對應的TPR和FPR值,然而,我們不從這個思路來簡單的得到TPR和FPR,而是反過來得到對應的clip_image002[9],我們檢測大量的閾值clip_image002[7],從而可以得到一個TPR-FPR的相關圖,如下圖所示(圖片引自《machine
learning:A Probabilistic Perspective》):

image

    圖中的紅色曲線和藍色曲線分別表示了兩個不同的分類器的TPR-FPR曲線,曲線上的任意一點都對應了一個clip_image002[9]值。該曲線就是ROC曲線(receiver
operating characteristic curve)。該曲線具有以下特徵:

  • 一定經過(0,0)點,此時clip_image002[13],沒有預測為P的值,TP和FP都為0

  • 一定經過(1,1)點,此時clip_image002[15],全都預測為P

  • 最完美的分類器(完全區分正負樣例):(0,1)點,即沒有FP,全是TP

  • 曲線越是“凸”向左上角,說明分類器效果越好

  • 隨機預測會得到(0,0)和(1,1)的直線上的一個點

  • 曲線上離(0,1)越近的點分類效果越好,對應著越合理的clip_image002[9]

    從圖中可以看出,紅色曲線所代表的分類器效果好於藍色曲線所表示的分類器。

 

3.利用ROC的其他評估標準

  • AUC(area under thecurve),也就是ROC曲線的下夾面積,越大說明分類器越好,最大值是1,圖中的藍色條紋區域面積就是藍色曲線對應的 AUC
  • EER(equal error rate),也就是FPR=FNR的值,由於FNR=1-TPR,可以畫一條從(0,1)到(1,0)的直線,找到交點,圖中的A、B兩點。

三、準確率,召回率,F值,E值,AP

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

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

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

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

1. 正確率 = 提取出的正確資訊條數 / 提取出的資訊條數  

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

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

3. F值 = 正確率 * 召回率 * 2 / (正確率 + 召回率) (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)

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