機器學習性能評估指標匯總

跑完分類模型(Logistic回歸、決策樹、神經網絡等),我們經常面對一大堆模型評估的報表和指標,如ACC、ROC、AUC等,對以上提到的各個評估指標逐一點評,并力圖表明:

指標分類

學習分類 性能指標
分類 Accuracy、precision、Recall、F1 Score、ROC Curve、PR Curve、AUC、
回歸 MAE、MSE

分類

混淆矩陣

1代表正類,0代表負類,Predicted代表預測,Actual代表實際。

Predicted Predicted 合計
<u>1</u> <u>0</u>
Actual <u>1</u> D: (TP) -> 2814 C: (FN) -> 36 D+C: Actual Positive
Actual <u>0</u> B: (FP) -> 235 A: (TN) -> ** 248 ** A+B: Actual Negative
合計 B+D: Predicted Positive A+C: Predicted Negative
  • A: (True Negative) 將負類預測為負類數(正確預測負例),<u>(TN | 真負,0->0)</u>
  • B: (False Positive) 將負類預測為正類數,<u>(FP | 假正, 0->1)</u> → 誤報
  • C: (False Negative) 將正類預測為負類數,<u>(FN | 假負, 1->0) </u>→ 漏報
  • D: (True Positive) 將正類預測為正類數(正確預測正例),<u>(TP | 真正, 1->1) </u>
  • A+B: (Actual Negative) 實際上負例的數量
  • C+D: (Actual Positive) 實際上正例的數量
  • A+C: (Predicted Negative) 預測的負例數量
  • B+D: (Predicted Positive) 預測的正例數量

實際的數據中,客戶有兩種可能good AND bad,其模型預測同樣有兩種可能,預測結果可能與實際數據匹配或不匹配。如果匹配則出現兩種可能,第一種True Positive(1->1):實際是Positive,預測成Positive,第二種True Negative(0->0):實際是Negative,預測成Negative;如果不匹配(犯錯)則出現兩種可能,第一種False Negative(1->0):實際是Positive,預測成Negative,第二種False Positive(0->1):實際是Negative,預測成Positive。


準確(分類)率 VS. 誤分類率:

準確(分類)率(accuracy) = 正確預測的正反例數 / 總數

  • ACC = (TP+TN) / (TP+TN+FP+FN)
  • = (A+D) / (A+B+C+D)

誤分類率 = 錯誤預測的正反例數 / 總數

  • 誤分類率 = (FP+FN) / (TP+TN+FP+FN) = 1 - ACC
  • = (B+C) / (A+B+C+D)

召回率 VS.精確率 → F1 Score

召回率(Recall) = 正確預測到的正例數 / 實際正例總數

  • Recall (True Positive Rate or Sensitivity) = TP / (TP+FN)
  • = D / (C+D)

精確率(Precision) = 正確預測到的正例數 / 預測正例總數

  • Precision (Positive Predicted Value,PV+) = TP / (TP+FP)
  • = D /(B+D)

F1 Score

F1 Score為精準率和召回率的<u>調和均值</u>

  • 2 / F1 = 1 / P + 1 / R
  • F1 Score = 2TP / (2TP + FP + FN)
  • 準確率(accuracy)和精確率(precision)都高的情況下,F1 Score也會顯得很高。

精確率是針對預測結果而言的,表示的是預測為正的樣本中有多少是真正的正樣本,預測為正就有兩種可能,一種是把正類預測為正類(TP),另一種就是把負類預測為正類(FP),即 P = TP / (TP+FP)

召回率是針對原來樣本而言的,表示的是樣本中的正例有多少被預測正確,同樣也有兩種可能,一種是把原來的正類預測成正類(TP),另一種就是把原來的正類預測為負類(FN),即 R = TP / (TP+FN)

精確率:預測正例與預測結果的比值,召回率:預測正例與實際樣本正例的比值。


ROC 曲線

維基百科定義

In signal detection theory, a receiver operating characteristic (ROC), or simply ROC curve, is a graphical plot which illustrates the performance of a binary classifier system as its discrimination threshold is varied.

邏輯回歸里面,對于正負例的界定,通常會設一個閾值,大于閾值的為正類,小于閾值為負類。如果我們減小這個閥值,更多的樣本會被識別為正類。提高正類的識別率,但同時也會使得更多的負類被錯誤識別為正類。為了直觀表示這一現象,此處引入ROC,ROC曲線可以用于評價一個分類器好壞。

ROC關注兩個指標:

True Positive Rate: TPR = TP / (TP+FN) → 將正例分對的概率
Fales Positive Rate: FPR = FP / (FP+TN) → 將負例錯分為正例的概率

在 ROC 空間中,每個點的橫坐標是 FPR,縱坐標是 TPR,這也就描繪了分類器在 TP(真正率)和 FP(假正率)間的 trade-off。

ROC curve

ROC曲線中的四個點和一條線:

  • 點(0,1):即FPR=0, TPR=1,意味著FN=0且FP=0,將所有的樣本都正確分類;
  • 點(1,0):即FPR=1,TPR=0,最差分類器,避開了所有正確答案;
  • 點(0,0):即FPR=TPR=0,FP=TP=0,分類器預測所有的樣本都為負樣本(negative);
  • 點(1,1):分類器實際上預測所有的樣本都為正樣本。
  • 總之:ROC曲線越接近左上角,該分類器的性能越好。

AUC

AUC(Area Under Curve)被定義為ROC曲線下的面積,顯然這個面積的數值不會大于1。隨機挑選一個正樣本以及一個負樣本,分類器判定正樣本的值高于負樣本的概率就是 AUC 值。
總之:AUC值越大的分類器,正確率越高。

  • AUC = 1:絕對完美分類器,理想狀態下,100%完美識別正負類,不管閾值怎么設定都能得出完美預測,絕大多數預測不存在完美分類器;
  • 0.5<AUC<1:優于隨機猜測。這個分類器(模型)妥善設定閾值的話,可能有預測價值;
  • AUC=0.5:跟隨機猜測一樣(例:隨機丟N次硬幣,正反出現的概率為50%),模型沒有預測價值;
  • AUC<0.5:比隨機猜測還差;但只要總是反預測而行,就優于隨機猜測,因此不存在AUC<0.5的狀況。
AUC

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

AUC是ROC的積分(曲線下面積)

補充:Gini coefficient

gini系數通常被用來判斷收入分配公平程度,具體請參閱wikipedia-基尼系數

Gini coefficient 是指絕對公平線(line of equality)和洛倫茨曲線(Lorenz Curve)圍成的面積與絕對公平線以下面積的比例,即gini coefficient = A面積 / (A面積+B面積) 。

用在評判分類模型的預測效力時,是指ROC曲線曲線和中線圍成的面積與中線之上面積的比例。

因此Gini coefficient與AUC可以互相轉換:

gini = A / (A + B) = (AUC - C) / (A + B) = (AUC -0.5) / 0.5 = 2AUC-1*

回歸

平均絕對誤差

平均絕對誤差MAE(Mean Absolute Error)又被稱為 l1l1 范數損失(l1-norm loss):

平均平方誤差

平均平方誤差 MSE(Mean Squared Error)又被稱為 l2l2 范數損失(l2-norm loss):

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容