機器學習中幾種常見的模型評價指標


1 模型評價指標

模型評估包括評估方法(evaluation)和評價指標(metrics)。評估方法包括留出法,交叉驗證,包外估計等。本文只介紹評價指標。

評價指標的兩個作用:一是了解模型的泛化能力,可以通過同一個指標來對比不同模型,從而知道哪個模型相對好,那個模型相對差;二是可以通過這個指標來逐步優化我們的模型。

對於分類和回歸兩類監督學習,分別有各自的評判標准。本篇主要討論與分類相關的一些指標,包括混淆矩陣、准確率、(宏/微)查准率、查全率、F1指數、PR曲線、ROC曲線/AUC。其中4個單一指標比較簡單,重點說下混淆矩陣、PR曲線和ROC曲線。

2 混淆矩陣、准確率、查准率、查全率

混淆矩陣:假設有三個類別需要分類,現在訓練了一個分類模型,對驗證集的預測結果列成表格,每一行是真正的類別,每一列是預測的類別,這個列表矩陣即為混淆矩陣。如下所示,混淆矩陣中土黃色表示真實類別,藍色表示預測類別,那么對角線上綠色值就表示預測正確的個數,某個綠色值除以當前行之和就是該類別的查全率(recall),除以當前列之和就是該類別的查准率(precision),對角線之和除以總和就是全局准確率(accuracy)。比如現在的分類器,它的accuracy為(a11+a22+a33)/a_total,它對類別1的查全率為a11/a1_true,查准率為a11/a1_pred。混淆矩陣的優勢在於囊括了下面幾種單一指標,各種類別的信息一目了然。

准確率(accuracy):最原始也是最常用的評價指標,將正負樣本統一看待,只要預測正確就算數,\(\frac{TP+TN}{P+N}\)。雖然准確率可以判斷總的正確率,但是在樣本不平衡的情況下,導致了得到的高准確率結果含有很大的水分。因此衍生出了其它兩種指標:查准率和查全率。

查准率(precision):預測為正的樣本里面,真的正樣本所占比例,\(\frac{TP}{TP+FP}\)

查全率(recall,也稱召回率):所有正樣本里面檢測出來的比例,\(\frac{TP}{TP+FN}\)

3 PR曲線和F1值

查准率和查全率都依賴於閾值的選取。以邏輯回歸為例,預測概率值大於某個閾值則判定為正樣本,小於該閾值則判定為負樣本。但問題是:這個閾值是我們隨便定義的,我們並不知道這個閾值是否符合我們的要求。因此,為了更進一步了解模型的性能,我們希望遍歷 0 到 1 之間所有的閾值,看看在各個閾值下的查准率和查全率。

PR曲線的繪制:首先拿到分類器對於每個樣本預測為正例的概率,根據概率對所有樣本進行逆序排列,然后將分類閾值設為最大,即把所有樣本均預測為反例,然后依次放出一個樣本作為正例,分別畫出precision和recall。以precision作為縱軸,recall作為橫軸,將所有點連起來即得到PR曲線。

PR曲線的含義:

  • PR曲線的意義在於,可以直觀看出precision隨着recall增大的變化率。如果曲線越接近右上角,就說明隨着recall的增加,precision往下掉的速度不明顯。這是個好事情,說明如果需要的話,可以調整閾值以增加recall,而不用擔心precision掉的太厲害。
  • 如果正樣本的比例為α,那么隨便猜的情況下,PR曲線下的面積就是α。所以與ROC的AUC不同,即使PR曲線下面積小於0.5,也不能說明它差,因為要考慮正負樣本比例。可以參考這里
  • PR曲線下面積就等於平均精度(average precision)。目標檢測中經常用PR曲線下面積來計算AP(經過插值),以評估目標檢測模型的性能。

查准率和查全率是一對矛盾體,一個指標增加時,另一個往往就減少。當比較兩個模型的優劣時,PR曲線往往會相交,因此為了直觀看出哪個模型更好,就需要一個綜合考慮兩者的數值,這個值就是F1值。

F1指數:查准率和查全率的調和平均值,即\(\frac{2}{\frac{1}{P}+\frac{1}{R}}\)。如果希望F1值高,則需要兩者都比較高且均衡。

4 ROC曲線

ROC曲線的橫軸是假正例率\(\frac{FP}{所有負樣本}\),縱軸是真正例率\(\frac{TP}{所有正樣本}\)(即召回率)。

ROC曲線的繪制:和PR曲線的繪制過程類似,只不過是每次放出一個樣本作為正例時,分別畫出真正例率和假正例率。以真正例率作為縱軸,假正例率作為橫軸,將所有點連起來即得到ROC曲線。曲線越靠近左上角,意味着越多的正例優先於負例,模型的整體表現也就越好。

那么問題來了:為啥有了混淆矩陣和PR曲線,還要ROC?這里解釋ROC的兩大厲害之處。

厲害之處1:AUC(Area Under Curve)。這里的AUC是指ROC曲線下面積,根據這個值,可以大致判斷模型的分類能力。我們知道,對於一個好的邏輯回歸模型,它能把負樣本的預測值壓得很低(盡可能接近0),把正樣本的預測值拉的很高(接近1),這樣一來,我們只需要找到一個比較合適的閾值,就能很好的把正負樣本分開。那對於現在已經訓練好的邏輯回歸模型,該如何知道它把樣本分開的能力呢?就可以用ROC的AUC。

圖中的兩個正態分布表示兩個類別的概率密度,模型越好,就能把兩個類別分的越開。可以看出,模型把兩個類別分的越開,對應的ROC曲線就越接近左上角,AUC就越大。最理想的情況是AUC等於1,最差的情況是AUC等於0.5(兩個類別概率密度重合在一塊了,即模型沒能把兩個類別分開)。所以一般 AUC 的值是介於 0.5 到 1 之間的。AUC 的一般判斷標准:

  • 0.5 - 0.7:效果較低,但用於預測股票已經很不錯了
  • 0.7 - 0.85:效果一般
  • 0.85 - 0.95:效果很好
  • 0.95 - 1:效果非常好,但一般不太可能

注:資料中說,曲線下面積可以看作是模型將某個隨機正類別樣本排列在某個隨機負類別樣本之上的概率。其實表達的就是,曲線下面積可以代表模型將正負樣本分開的能力。

厲害之處2:對樣本類別不平衡的問題不敏感。ROC曲線兼顧正例和負例的權衡。因為TPR聚焦於正例,FPR聚焦於與負例,使其成為一個比較均衡的評估方法。兩個指標都不依賴於具體的類別分布。而PR曲線的兩個指標查准率和查全率都聚焦於正例。當負樣本數量突然增大時,ROC基本不變,但PR曲線變化很大。比如下圖,參考文獻中舉了個例子,負例增加了10倍,ROC曲線沒有改變,而PR曲線則變了很多。

5 應用場景

precision和recall的應用場景:

  • 查准率在意的是,預測為正的樣本中有多少是真的正樣本;而查全率在意的是,所有真的正樣本中到底有多少被檢測出來。比如在審判犯罪嫌疑人時,我們希望司法系統的查准率越高越好,即盡量不要冤枉無辜者,因為誤判為正樣本的后果很嚴重;
  • 而對於銀行的欺詐檢測系統來說,通常希望它的查全率越高越好,即盡量把欺詐賬戶識別出來,因為漏檢可能會帶來很大損失,而誤判為正樣本的話則影響不大。

PR曲線和ROC曲線應用場景:

  • ROC曲線兼顧正例與負例,而PR曲線完全聚焦於正例,所以前者適用於評估分類器的整體性能,以及需要剔除類別不平衡影響的情況,而PR曲線適用於評估更看重正例的情況。
  • 如果有多份數據且存在不同的類別分布,比如信用卡欺詐問題中每個月正例和負例的比例可能都不相同,這時候如果只想單純地比較分類器的性能且剔除類別分布改變的影響,則ROC曲線比較適合。
  • 在信息檢索、推薦中,希望precision較大,用戶希望排名靠前的推薦是自己想要的結果,所以評估時PR曲線比較合適。

6 小結

  • 混淆矩陣可以得到多種單一指標,各種類別的信息一目了然
  • precision和recall是一對矛盾體,前者體現的是預測的正例靠不靠譜,后者體現的是漏檢率
  • PR曲線、ROC曲線可以呈現出不同的閾值下的信息,而單一指數只能看出單一閾值下的信息
  • PR曲線可以直觀看出precision隨着recall增大時下降速度;即使PR曲線下面積小於0.5,也不能說明它差,需要考慮正負樣本比例
  • ROC曲線兩大厲害之處在於,一:AUC能反映出分類器對樣本的排序能力,AUC越大,能將正負樣本分的越開。二:ROC曲線對樣本類別不平衡的問題不敏感。

Reference:


免責聲明!

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



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