機器學習常用的性能評價指標


混淆矩陣

  • True Positive(TP):將正類預測為正類數
  • True Negative(TN):將負類預測為負類數
  • False Positive(FP):將負類預測為正類數
  • False Negative(FN):將正類預測為負類數

准確率(accuracy)

  • 計算公式

\[acc = \frac{TP + TN}{TP + TN + FP + FN} \]

  • 解釋
    對於樣本,模型對於正負預測的准確率。

精確率(precision)

\[pre = \frac{TP}{TP + FP} \]

  • 理解
    精確率追求精,什么是精?模型你找出來的正類,正類一定要多。故精確率又稱查准率。

召回率(recall)

  • 計算方法

\[rec = \frac{TP}{TP + FN} \]

  • 理解
    召回率追求召回(找回),模型你要把樣本中所有正類樣本盡可能的找出來。故召回率又稱查全率。

F1指標

  • 計算方法

\[F1 = \frac{2 \times pre \times rec}{pre + rec} = \frac{2 \times TP}{2 \times TP + FP + FN} \]

  • 理解
    pre 和 rec 兩個不可兼得時,我們一般用F1來作為作為指標,他越大越好。

PR曲線

根據上面對pre,rec的兩個理解,好多情況下,我們可能不能同時得到高pre和rec,所以一般地我們畫出PR曲線,取折中點。

從上圖不難發現,precision與Recall的折中(trade off),曲線越靠近右上角性能越好,曲線下的面積叫AP分數,能在一定程度上反應模型的精確率和召回率都很高的比例。但這個值不方便計算,綜合考慮精度與召回率一般使用F1函數或者AUC值(AUC是ROC曲線下的面積,比較容易計算)

ROC曲線 與 AUC

縱坐標含義:真正率,True Positive Rate(TPR), 其實就是召回率 \(rec = \frac{TP}{TP + FN}\)
橫坐標含義:假正率,False Position Rate(FPR), \(FPR = \frac{FP}{FP + TN}\)

如何得到ROC曲線


上圖中共有20個測試樣本,“Class”一欄表示每個測試樣本真正的標簽(p表示正樣本,n表示負樣本),“Score”表示每個測試樣本屬於正樣本的概率。
在一個二分類問題中,每有一個Threshold,我們都可以得到一組<TPR,FPF>,接下來,我們從高到低,依次將“Score”值作為閾值threshold,當測試樣本屬於正樣本的概率大於或等於這個threshold時,我們認為它為正樣本,否則為負樣本。
舉例來說,對於圖中的第4個樣本,其“Score”值為0.6,那么樣本1,2,3,4都被認為是正樣本,因為它們的“Score”值都大於等於0.6,而其他樣本則都認為是負樣本。每次選取一個不同的threshold,我們就可以得到一組FPR和TPR,即ROC曲線上的一點。這樣一來,我們一共得到了20組FPR和TPR的值,將它們畫在ROC曲線的結果如下圖:

當我們將threshold設置為1和0時,分別可以得到ROC曲線上的(0,0)和(1,1)兩個點。當threshold取值越多,ROC曲線越平滑,將這些(FPR,TPR)對連接起來,就得到了ROC曲線。

如何計算AUC


AUC (Area Under Curve) 被定義為ROC曲線下的面積,顯然這個面積的數值不會大於1。又由於ROC曲線一般都處於y=x這條直線的上方,所以AUC的取值范圍一般在0.5和1之間。使用AUC值作為評價標准是因為很多時候ROC曲線並不能清晰的說明哪個分類器的效果更好,而作為一個數值,對應AUC更大的分類器效果更好。
簡單來講,AUC值越大的分類器,正確率越高。

  • 如何估算AUC
    (1) 畫在一張圖上直接看唄;
    (2) 把他盡可能的分成多個小梯形算唄;

  • AUC判斷分類器的好壞:
    (1) AUC = 1,是完美分類器,采用這個預測模型時,存在至少一個閾值能得出完美預測。絕大多數預測的場合,不存在完美分類器。
    (2) 0.5 < AUC < 1,優於隨機猜測。這個分類器(模型)妥善設定閾值的話,能有預測價值。
    (3) AUC = 0.5,跟隨機猜測一樣(例:丟銅板),模型沒有預測價值。
    (4) AUC < 0.5,比隨機猜測還差;但只要總是反預測而行,就優於隨機猜測。

為什么大家都在用ROC曲線呢?

既然已經這么多評價標准,為什么還要使用ROC和AUC呢?因為ROC曲線有個很好的特性:當測試集中的正負樣本的分布變化的時候,ROC曲線能夠保持不變。在實際的數據集中經常會出現類不平衡(class imbalance)現象,即負樣本比正樣本多很多(或者相反),而且測試數據中的正負樣本的分布也可能隨着時間變化。下圖是ROC曲線和Precision-Recall曲線的對比:

在上圖中,(a)和(c)為ROC曲線,(b)和(d)為Precision-Recall曲線。(a)和(b)展示的是分類其在原始測試集(正負樣本分布平衡)的結果,(c)和(d)是將測試集中負樣本的數量增加到原來的10倍后,分類器的結果。可以明顯的看出,ROC曲線基本保持原貌,而Precision-Recall曲線則變化較大。

最后,這些指標具體業務還是要具體分析,綜合平衡。
參考文獻
[1] https://zhwhong.cn/2017/04/14/ROC-AUC-Precision-Recall-analysis/ (本文內容基本來自此博客)
~初完


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM