分類模型評估指標匯總

  • 2019 年 12 月 4 日
  • 筆記

對模型進行評估時,可以選擇很多種指標,但不同的指標可能得到不同的結果,如何選擇合適的指標,需要取決於任務需求。

正確率與錯誤率

正確率:正確分類的樣本數/總樣本數,accuracy

錯誤率:錯誤分類的樣本數/總樣本數,error

正確率+錯誤率=1

這兩種指標最簡單,也最常用

缺點

  1. 不一定能反應模型的泛化能力,如類別不均衡問題。
  2. 不能滿足所有任務需求

如有一車西瓜,任務一:挑出的好瓜中有多少實際是好瓜,任務二:所有的好瓜有多少被挑出來了,顯然正確率和錯誤率不能解決這個問題。

查准率與查全率

先認識幾個概念

正樣本/正元組:目標元組,感興趣的元組

負樣本/負元組:其他元組

對於二分類問題,模型的預測結果可以劃分為:真正例 TP、假正例 FP、真負例 TN、 假負例 FN,

真正例就是實際為正、預測為正,其他同理

顯然 TP+FP+TN+FN=總樣本數

混淆矩陣

把上面四種劃分用混淆矩陣來表示

從而得出如下概念

查准率:預測為正里多少實際為正,precision,也叫精度

查全率:實際為正里多少預測為正,recall,也叫召回率

查准率和查全率是一對矛盾的度量。通常來講,查准率高,查全率就低,反之亦然。

例如還是一車西瓜,我希望將所有好瓜儘可能選出來,如果我把所有瓜都選了,那自然所有好瓜都被選了,這就需要所有的瓜被識別為好瓜,此時查准率較低,而召回率是100%,

如果我希望選出的瓜都是好瓜,那就要慎重了,寧可不選,不能錯選,這就需要預測為正就必須是真正例,此時查准率是100%,查全率可能較低。

注意我說的是可能較低,通常如果樣本很好分,比如正的全分到正的,負的全分到負的,那查准率、查全率都是100%,不矛盾。

P-R曲線

既然矛盾,那兩者之間的關係應該如下圖

這條曲線叫 P-R曲線,即查准率-查全率曲線。

這條曲線怎麼畫出來的呢?可以這麼理解,假如我用某種方法得到樣本是正例的概率(如用模型對所有樣本進行預測),然後把樣本按概率排序,從高到低

如果模型把第一個預測為正,其餘預測為負,此時查准率為1,查全率接近於0,

如果模型把前2個預測為正,其餘預測為負,此時查准率稍微降低,查全率稍微增加,

依次…

如果模型把除最後一個外的樣本預測為正,最後一個預測為負,那麼查准率很低,查全率很高。

此時我把數據順序打亂,畫出來的圖依然一樣,即上圖。

既然查准率和查全率互相矛盾,那用哪個作為評價指標呢?或者說同時用兩個指標怎麼評價模型呢?

兩種情形

  1. 如果學習器A的P-R曲線能完全「包住」學習器C的P-R曲線,則A的性能優於C
  2. 如果學習器A的P-R曲線與學習器B的P-R曲線相交,則難以判斷孰優孰劣,此時通常的作法是,固定查准率,比較查全率,或者固定查全率,比較查准率。

通常情況下曲線會相交,但是人們仍希望把兩個學習器比出個高低,一個合理的方式是比較兩條P-R曲線下的面積。

但是這個面積不好計算,於是人們又設計了一些其他綜合考慮查准率查全率的方式,來替代面積計算。

平衡點:Break-Event Point,簡稱BEP,就是選擇 查准率=查全率 的點,即上圖,y=x直線與P-R曲線的交點

這種方法比較暴力

F1 與 Fβ 度量

更常用的方法是F1度量

即 F1 是 P 和 R 的調和平均數。

與算數平均數 和 幾何平均數相比,調和平均數更重視較小值。

在一些應用中,對查准率和查全率的重視程度有所不同。

例如商品推薦系統,為了避免騷擾客戶,希望推薦的內容都是客戶感興趣的,此時查准率比較重要,

又如資料查詢系統,為了不漏掉有用資訊,希望把所有資料都取到,此時查全率比較重要。

此時需要對查准率和查全率進行加權

即 P 和 R 的加權調和平均數。

β>0,β度量了查全率對查准率的重要性,β=1時即為F1

β>1,查全率更重要,β<1,查准率更重要

多分類的F1

多分類沒有正例負例之說,那麼可以轉化為多個二分類,即多個混淆矩陣,在這多個混淆矩陣上綜合考慮查准率和查全率,即多分類的F1

方法1

直接在每個混淆矩陣上計算出查准率和查全率,再求平均,這樣得到「宏查准率」,「宏查全率」和「宏F1」

方法2

把混淆矩陣中對應元素相加求平均,即 TP 的平均,TN 的平均,等,再計算查准率、查全率、F1,這樣得到「微查准率」,「微查全率」和「微F1」

ROC 與 AUC

很多學習器是為樣本生成一個概率,然後和設定閾值進行比較,大於閾值為正例,小於為負例,如邏輯回歸。

而模型的優劣取決於兩點:

  1. 這個概率的計算準確與否
  2. 閾值的設定

我們把計算出的概率按從大到小排序,然後在某個點劃分開,這個點就是閾值,可以根據實際任務需求來確定這個閾值,比如更重視查准率,則閾值設大點,若更重視查全率,則閾值設小點,

這裡體現了同一模型的優化,

不同的模型計算出的概率是不一樣的,也就是說樣本按概率排序時順序不同,那切分時自然可能分到不同的類,

這裡體現了不同模型之間的差異,

所以ROC可以用來模型優化和模型選擇,理論上講 P-R曲線也可以。

ROC曲線的繪製方法與P-R曲線類似,不再贅述,結果如下圖

橫坐標為假正例率,縱坐標為真正例率,曲線下的面積叫 AUC

如何評價模型呢?

  1. 若學習器A的ROC曲線能包住學習器B的ROC曲線,則A優於B
  2. 若學習器A的ROC曲線與學習器B的ROC曲線相交,則難以比較孰優孰劣,此時可以比較AUC的大小

總結

  1. 模型評估主要考慮兩種場景:類別均衡,類別不均衡
  2. 模型評估必須考慮實際任務需求
  3. P-R 曲線和 ROC曲線可以用於模型選擇
  4. ROC曲線可以用於模型優化