回歸評估指標——準確率、精準率、召回率、F1、ROC曲線、AUC曲線

機器學習模型需要有量化的評估指標來評估哪些模型的效果更好。

本文將用通俗易懂的方式講解分類問題的混淆矩陣和各種評估指標的計算公式。將要給大家介紹的評估指標有:準確率、精準率、召回率、F1、ROC曲線、AUC曲線。

 

機器學習評估指標大全

所有事情都需要評估好壞,尤其是量化的評估指標。

  • 高考成績用來評估學生的學習能力
  • 杠鈴的重量用來評估肌肉的力量
  • 跑分用來評估手機的綜合性能

機器學習有很多評估的指標。有了這些指標我們就橫向的比較哪些模型的表現更好。我們先從整體上來看看主流的評估指標都有哪些:

機器學習評估指標大全

分類問題評估指標:

  1. 準確率 – Accuracy
  2. 精確率(差准率)- Precision
  3. 召回率(查全率)- Recall
  4. F1分數
  5. ROC曲線
  6. AUC曲線

回歸問題評估指標:

  1. MAE
  2. MSE

 

分類問題圖解

為了方便大家理解各項指標的計算方式,我們用具體的例子將分類問題進行圖解,幫助大家快速理解分類中出現的各種情況。

舉個例子:

我們有10張照片,5張男性、5張女性。如下圖:

10張照片,5張男性、5張女性

有一個判斷性別的機器學習模型,當我們使用它來判斷「是否為男性」時,會出現4種情況。如下圖:

機器判斷是否為男性,有4種情況

  1. 實際為男性,且判斷為男性(正確)
  2. 實際為男性,但判斷為女性(錯誤)
  3. 實際為女性,且判斷為女性(正確)
  4. 實際為女性,但判斷為男性(錯誤)

這4種情況構成了經典的混淆矩陣,如下圖:

混淆矩陣

TP – True Positive:實際為男性,且判斷為男性(正確)

FN – False Negative:實際為男性,但判斷為女性(錯誤)

TN – True Negative:實際為女性,且判斷為女性(正確)

FP – False Positive:實際為女性,但判斷為男性(錯誤)

這4個名詞初看起來比較暈(尤其是縮寫),但是當我們把英文拆分時就很容易理解了,如下圖:

混淆矩陣拆分解釋

所有的評估指標都是圍繞上面4種情況來計算的,所以理解上面4種情況是基礎!

 

分類評估指標詳解

下面詳細介紹一下分類分為種的各種評估指標詳情和計算公式:

準確率 – Accuracy

預測正確的結果佔總樣本的百分比,公式如下:

準確率 =(TP+TN)/(TP+TN+FP+FN)

準確率計算公式

雖然準確率可以判斷總的正確率,但是在樣本不平衡 的情況下,並不能作為很好的指標來衡量結果。舉個簡單的例子,比如在一個總樣本中,正樣本占 90%,負樣本占 10%,樣本是嚴重不平衡的。對於這種情況,我們只需要將全部樣本預測為正樣本即可得到 90% 的高準確率,但實際上我們並沒有很用心的分類,只是隨便無腦一分而已。這就說明了:由於樣本不平衡的問題,導致了得到的高準確率結果含有很大的水分。即如果樣本不平衡,準確率就會失效。

 

精確率(差准率)- Precision

所有被預測為正的樣本中實際為正的樣本的概率,公式如下:

精準率 =TP/(TP+FP)

精確率計算公式

精準率和準確率看上去有些類似,但是完全不同的兩個概念。精準率代表對正樣本結果中的預測準確程度,而準確率則代表整體的預測準確程度,既包括正樣本,也包括負樣本。

 

召回率(查全率)- Recall

實際為正的樣本中被預測為正樣本的概率,其公式如下:

召回率=TP/(TP+FN)

召回率計算公式

召回率的應用場景: 比如拿網貸違約率為例,相對好用戶,我們更關心壞用戶,不能錯放過任何一個壞用戶。因為如果我們過多的將壞用戶當成好用戶,這樣後續可能發生的違約金額會遠超過好用戶償還的借貸利息金額,造成嚴重償失。召回率越高,代表實際壞用戶被預測出來的概率越高,它的含義類似:寧可錯殺一千,絕不放過一個。

 

F1分數

如果我們把精確率(Precision)和召回率(Recall)之間的關係用圖來表達,就是下面的PR曲線:

PR曲線

可以發現他們倆的關係是「兩難全」的關係。為了綜合兩者的表現,在兩者之間找一個平衡點,就出現了一個 F1分數。

F1=(2×Precision×Recall)/(Precision+Recall)

F1分數計算公式

 

ROC曲線、AUC曲線

ROC 和 AUC 是2個更加複雜的評估指標,下面這篇文章已經很詳細的解釋了,這裡直接引用這篇文章的部分內容。

上面的指標說明也是出自這篇文章:一文讓你徹底理解準確率,精準率,召回率,真正率,假正率,ROC/AUC

1. 靈敏度,特異度,真正率,假正率

在正式介紹 ROC/AUC 之前,我們還要再介紹兩個指標,這兩個指標的選擇也正是 ROC 和 AUC 可以無視樣本不平衡的原因。 這兩個指標分別是:靈敏度和(1- 特異度),也叫做真正率(TPR)和假正率(FPR)

靈敏度(Sensitivity) = TP/(TP+FN)

特異度(Specificity) = TN/(FP+TN)

  • 其實我們可以發現靈敏度和召回率是一模一樣的,只是名字換了而已。
  • 由於我們比較關心正樣本,所以需要查看有多少負樣本被錯誤地預測為正樣本,所以使用(1- 特異度),而不是特異度。

真正率(TPR) = 靈敏度 = TP/(TP+FN)

假正率(FPR) = 1- 特異度 = FP/(FP+TN)

下面是真正率和假正率的示意,我們發現TPR 和 FPR 分別是基於實際表現 1 和 0 出發的,也就是說它們分別在實際的正樣本和負樣本中來觀察相關概率問題。 正因為如此,所以無論樣本是否平衡,都不會被影響。還是拿之前的例子,總樣本中,90% 是正樣本,10% 是負樣本。我們知道用準確率是有水分的,但是用 TPR 和 FPR 不一樣。這裡,TPR 只關注 90% 正樣本中有多少是被真正覆蓋的,而與那 10% 毫無關係,同理,FPR 只關注 10% 負樣本中有多少是被錯誤覆蓋的,也與那 90% 毫無關係,所以可以看出:如果我們從實際表現的各個結果角度出發,就可以避免樣本不平衡的問題了,這也是為什麼選用 TPR 和 FPR 作為 ROC/AUC 的指標的原因。

TPR 和 FPR

或者我們也可以從另一個角度考慮:條件概率。 我們假設X為預測值,Y為真實值。那麼就可以將這些指標按條件概率表示:

精準率 = P(Y=1 | X=1)

召回率 = 靈敏度 = P(X=1 | Y=1)

特異度 = P(X=0 | Y=0)

從上面三個公式看到:如果我們先以實際結果為條件(召回率,特異度),那麼就只需考慮一種樣本,而先以預測值為條件(精準率),那麼我們需要同時考慮正樣本和負樣本。所以先以實際結果為條件的指標都不受樣本不平衡的影響,相反以預測結果為條件的就會受到影響。

2. ROC(接受者操作特徵曲線)

ROC(Receiver Operating Characteristic)曲線,又稱接受者操作特徵曲線。該曲線最早應用於雷達信號檢測領域,用於區分信號與雜訊。後來人們將其用於評價模型的預測能力,ROC 曲線是基於混淆矩陣得出的。

ROC 曲線中的主要兩個指標就是真正率假正率, 上面也解釋了這麼選擇的好處所在。其中橫坐標為假正率(FPR),縱坐標為真正率(TPR),下面就是一個標準的 ROC 曲線圖。

ROC曲線

ROC 曲線的閾值問題

與前面的 P-R 曲線類似,ROC 曲線也是通過遍歷所有閾值 來繪製整條曲線的。如果我們不斷的遍歷所有閾值,預測的正樣本和負樣本是在不斷變化的,相應的在 ROC 曲線圖中也會沿著曲線滑動。

ROC曲線滑動

如何判斷 ROC 曲線的好壞?

改變閾值只是不斷地改變預測的正負樣本數,即 TPR 和 FPR,但是曲線本身是不會變的。那麼如何判斷一個模型的 ROC 曲線是好的呢?這個還是要回歸到我們的目的:FPR 表示模型虛報的響應程度,而 TPR 表示模型預測響應的覆蓋程度。我們所希望的當然是:虛報的越少越好,覆蓋的越多越好。所以總結一下就是TPR 越高,同時 FPR 越低(即 ROC 曲線越陡),那麼模型的性能就越好。 參考如下:

TPR 越高,同時 FPR 越低(即 ROC 曲線越陡),那麼模型的性能就越好

ROC 曲線無視樣本不平衡

前面已經對 ROC 曲線為什麼可以無視樣本不平衡做了解釋,下面我們用動態圖的形式再次展示一下它是如何工作的。我們發現:無論紅藍色樣本比例如何改變,ROC 曲線都沒有影響。

ROC 曲線無視樣本不平衡

3. AUC(曲線下的面積)

為了計算 ROC 曲線上的點,我們可以使用不同的分類閾值多次評估邏輯回歸模型,但這樣做效率非常低。幸運的是,有一種基於排序的高效演算法可以為我們提供此類信息,這種演算法稱為曲線下面積(Area Under Curve)

比較有意思的是,如果我們連接對角線,它的面積正好是 0.5。對角線的實際含義是:隨機判斷響應與不響應,正負樣本覆蓋率應該都是 50%,表示隨機效果。 ROC 曲線越陡越好,所以理想值就是 1,一個正方形,而最差的隨機判斷都有 0.5,所以一般 AUC 的值是介於 0.5 到 1 之間的。

AUC 的一般判斷標準

0.5 – 0.7: 效果較低,但用於預測股票已經很不錯了

0.7 – 0.85: 效果一般

0.85 – 0.95: 效果很好

0.95 – 1: 效果非常好,但一般不太可能

AUC 的物理意義

曲線下面積對所有可能的分類閾值的效果進行綜合衡量。曲線下面積的一種解讀方式是看作模型將某個隨機正類別樣本排列在某個隨機負類別樣本之上的概率。以下面的樣本為例,邏輯回歸預測從左到右以升序排列:

AUC 的物理意義