1. 程式人生 > >[總結]ROC曲線、AUC、準確度、召回率

[總結]ROC曲線、AUC、準確度、召回率

ROC曲線、AUC、準確度、召回率…

  • 混淆矩陣
Label : 1 Label : 0
Estimation: 1 TP(True Positive)
Estimation: 0 FN(False Negative)

- 準確率和召回率(Precision & Recall)

準確率為預測為正的人當中有多少預測正確了。

Precision(P)=TPTP+FP
召回率為真正為正的人當中有多少被預測到了。
Recall(R)=TPTP+FN
  • F值

    :綜合考慮了P和R。

    2F=1P+1R
  • ROC曲線 : x軸為假陽性(FPR),y軸為真陽性(TPR)。

    若我們預測出來的結果都是預測為正的概率值,那麼混淆矩陣需要確定一個閾值,才可以得到。

    針對每個閾值,都可以計算兩個指標(分母為分子真實所屬類的樣本數目):

    ①真陽率:是指真正正樣例中的預測出來的比例,等價於召回率。

    TPR=R=TPTP+FN
    ②假陽率:是指所有負樣例中被預測為正的比例。
    FPR=FPFP+TN
    不同的閾值得到不同的TPRFPR值,連起來則得到ROC曲線。

    若模型完全正確,則

    FP=FN=0,則有TPR=1,FPR=0.

    此時ROC曲線經過(0,1)點,因此認為ROC曲線越靠近左上角越好。

  • AUC(Area Under Curve):ROC曲線下的面積。


    這裡寫圖片描述

  • Gini係數:Gini係數指ROC曲線與中線(上圖紅線)圍成的面積和中線(上圖紅線)之上的面積(0.5)的比例。

    兩者之間換算公式為Gini=2AUC1=2(AUC0.5).

  • KS(Kolmogorov-Smirnov)值:TPR與FPR的差的最大值。

    KS值可以反映模型的最優區分效果,此時所取的閾值一般作為定義好壞使用者的最優閾值。

    KS=max(TPRFPR)
  • PR曲線(Precision-Recall curve):PR曲線是準確率和召回率的點連成的線。

這裡寫圖片描述

  • 比較

    TPR、FPR、Precision、Recall的定義來對比,TPR、Recall的分母為樣本中壞客戶的個數,FPR的分母為樣本中好客戶的個數,樣本一旦確定分母即為定值,因此三個指標的變化隨分子增加單調遞增。但是Precision的分母為預測為壞客戶的個數,會隨著閾值的變化而變化,因此Precision的變化受TP和FP的綜合影響,不單調,變化情況不可預測。而且TP和FP的值分別受樣本中好壞客戶個數的制約,若樣本極不均衡,比如好客戶過多,則隨Recall的增加,FP會遠大於TP的值,Precision會變化很大。
    相對來講ROC曲線會穩定很多,在正負樣本量都足夠的情況下,ROC曲線足夠反映模型的判斷能力。