1. 程式人生 > >深度學習常用的模型評估指標

深度學習常用的模型評估指標

地震 時有 就會 com 真的 con section 系統 最大的

“沒有測量,就沒有科學。”這是科學家門捷列夫的名言。在計算機科學中,特別是在機器學習的領域,對模型的測量和評估同樣至關重要。只有選擇與問題相匹配的評估方法,我們才能夠快速的發現在模型選擇和訓練過程中可能出現的問題,叠代地對模型進行優化。本文將總結機器學習最常見的模型評估指標,其中包括:

  • precision
  • recall
  • F1-score
  • PRC
  • ROC和AUC
  • IOU

從混淆矩陣談起

看一看下面這個例子:假定瓜農拉來一車西瓜,我們用訓練好的模型對這些西瓜進行判別,顯然我們可以使用錯誤率來衡量有多少比例的瓜被判別錯誤。但如果我們關心的是“挑出的西瓜中有多少比例是好瓜”,或者“所有好瓜中有多少比例被挑出來了”,那麽錯誤率顯然就不夠用了,這時我們需要引入新的評估指標,比如“查準率”和查全率更適合此類需求的性能度量。

在引入查全率和查準率之前我們必須先理解到什麽是混淆矩陣(Confusion matrix)。這個名字起得是真的好,初學者很容易被這個矩陣搞得暈頭轉向。下圖a就是有名的混淆矩陣,而下圖b則是由混淆矩陣推出的一些有名的評估指標。

技術分享圖片

我們首先好好解讀一下混淆矩陣裏的一些名詞和其意思。根據混淆矩陣我們可以得到TP,FN,FP,TN四個值,顯然TP+FP+TN+FN=樣本總數。這四個值中都帶兩個字母,單純記憶這四種情況很難記得牢,我們可以這樣理解:第一個字母表示本次預測的正確性,T就是正確,F就是錯誤;第二個字母則表示由分類器預測的類別,P代表預測為正例,N代表預測為反例。比如TP我們就可以理解為分類器預測為正例(P),而且這次預測是對的(T),FN可以理解為分類器的預測是反例(N),而且這次預測是錯誤的(F),正確結果是正例,即一個正樣本被錯誤預測為負樣本。我們使用以上的理解方式來記住TP、FP、TN、FN的意思應該就不再困難了。,下面對混淆矩陣的四個值進行總結性講解:

  • True Positive (真正,TP)被模型預測為正的正樣本
  • True Negative(真負 , TN)被模型預測為負的負樣本
  • False Positive (假正, FP)被模型預測為正的負樣本
  • False Negative(假負 , FN)被模型預測為負的正樣本

Precision、Recall、PRC、F1-score

Precision指標在中文裏可以稱為查準率或者是精確率,Recall指標在中衛裏常被稱為查全率或者是召回率,查準率 P和查全率 R分別定義為:

技術分享圖片

查準率P和查全率R的具體含義如下:

  • 查準率(Precision)是指在所有系統判定的“真”的樣本中,確實是真的的占比
  • 查全率(Recall)是指在所有確實為真的樣本中,被判為的“真”的占比

這裏想強調一點,precision和accuracy(正確率)不一樣的,accuracy針對所有樣本,precision針對部分樣本,即正確的預測/總的正反例:

技術分享圖片

查準率和查全率是一對矛盾的度量,一般而言,查準率高時,查全率往往偏低;而查全率高時,查準率往往偏低。我們從直觀理解確實如此:我們如果希望好瓜盡可能多地選出來,則可以通過增加選瓜的數量來實現,如果將所有瓜都選上了,那麽所有好瓜也必然被選上,但是這樣查準率就會越低;若希望選出的瓜中好瓜的比例盡可能高,則只選最有把握的瓜,但這樣難免會漏掉不少好瓜,導致查全率較低。通常只有在一些簡單任務中,才可能使查全率和查準率都很高。

再說PRC, 其全稱就是Precision Recall Curve,它以查準率為Y軸,、查全率為X軸做的圖。它是綜合評價整體結果的評估指標。所以,哪總類型(正或者負)樣本多,權重就大。也就是通常說的『對樣本不均衡敏感』,『容易被多的樣品帶走』。

技術分享圖片

上圖就是一幅P-R圖,它能直觀地顯示出學習器在樣本總體上的查全率和查準率,顯然它是一條總體趨勢是遞減的曲線。在進行比較時,若一個學習器的PR曲線被另一個學習器的曲線完全包住,則可斷言後者的性能優於前者,比如上圖中A優於C。但是B和A誰更好呢?因為AB兩條曲線交叉了,所以很難比較,這時比較合理的判據就是比較PR曲線下的面積,該指標在一定程度上表征了學習器在查準率和查全率上取得相對“雙高”的比例。因為這個值不容易估算,所以人們引入“平衡點”(BEP)來度量,他表示“查準率=查全率”時的取值,值越大表明分類器性能越好,以此比較我們一下子就能判斷A較B好。

BEP還是有點簡化了,更常用的是F1度量:

技術分享圖片

F1-score 就是一個綜合考慮precision和recall的指標,比BEP更為常用。

ROC & AUC

ROC全稱是“受試者工作特征”(Receiver Operating Characteristic)曲線,ROC曲線以“真正例率”(TPR)為Y軸,以“假正例率”(FPR)為X軸,對角線對應於“隨機猜測”模型,而(0,1)則對應“理想模型”。ROC形式如下圖所示。

技術分享圖片

TPR和FPR的定義如下:

技術分享圖片

從形式上看TPR就是我們上面提到的查全率Recall,而FPR的含義就是:所有確實為“假”的樣本中,被誤判真的樣本。

進行學習器比較時,與PR圖相似,若一個學習器的ROC曲線被另一個學習器的曲線包住,那麽我們可以斷言後者性能優於前者;若兩個學習器的ROC曲線發生交叉,則難以一般性斷言兩者孰優孰劣。此時若要進行比較,那麽可以比較ROC曲線下的面積,即AUC,面積大的曲線對應的分類器性能更好。

AUC(Area Under Curve)的值為ROC曲線下面的面積,若分類器的性能極好,則AUC為1。但現實生活中尤其是工業界不會有如此完美的模型,一般AUC均在0.5到1之間,AUC越高,模型的區分能力越好,上圖AUC為0.81。若AUC=0.5,即與上圖中紅線重合,表示模型的區分能力與隨機猜測沒有差別。若AUC真的小於0.5,請檢查一下是不是好壞標簽標反了,或者是模型真的很差。

怎麽選擇評估指標?

這種問題的答案當然是具體問題具體分析啦,單純地回答誰好誰壞是沒有意義的,我們需要結合實際場景給出合適的回答。

考慮下面是兩個場景,由此看出不同場景下我們關註的點是不一樣的:

  1. 地震的預測對於地震的預測,我們希望的是Recall非常高,也就是說每次地震我們都希望預測出來。這個時候我們可以犧牲Precision。情願發出1000次警報,把10次地震都預測正確了;也不要預測100次對了8次漏了兩次。所以我們可以設定在合理的precision下,最高的recall作為最優點,找到這個對應的threshold點。
  2. 嫌疑人定罪基於不錯怪一個好人的原則,對於嫌疑人的定罪我們希望是非常準確的。及時有時候放過了一些罪犯(Recall低),但也是值得的。

ROC和PRC在模型性能評估上效果都差不多,但需要註意的是,在正負樣本分布得極不均勻(highly skewed datasets)的情況下,PRC比ROC能更有效地反應分類器的好壞。在數據極度不平衡的情況下,譬如說1萬封郵件中只有1封垃圾郵件,那麽如果我挑出10封,50封,100...封垃圾郵件(假設我們每次挑出的N封郵件中都包含真正的那封垃圾郵件),Recall都是100%,但是FPR分別是9/9999, 49/9999, 99/9999(數據都比較好看:FPR越低越好),而Precision卻只有1/10,1/50, 1/100 (數據很差:Precision越高越好)。所以在數據非常不均衡的情況下,看ROC的AUC可能是看不出太多好壞的,而PR curve就要敏感的多。

IOU

上面討論的是分類任務中的評價指標,這裏想簡單講講目標檢測任務中常用的評價指標:IOU(Intersection over Union),中文翻譯為交並比。

這裏是一個實際例子:下圖綠色框是真實感興趣區域,紅色框是預測區域,這種情況下交集確實是最大的,但是紅色框並不能準確預測物體位置。因為預測區域總是試圖覆蓋目標物體而不是正好預測物體位置。這時如果我們能除以一個並集的大小,就可以規避這種問題。這就是IOU要解決的問題了。

技術分享圖片

下圖表示了IOU的具體意義,即:預測框與標註框的交集與並集之比,數值越大表示該檢測器的性能越好。

技術分享圖片

使用IOU評價指標後,上面提到的問題一下子解決了:我們控制並集不要讓並集太大,對準確預測是有益的,這就有效抑制了“一味地追求交集最大”的情況的發生。下圖的2,3小圖就是目標檢測效果比較好的情況。

技術分享圖片

參考資料:https://www.cnblogs.com/skyfsm/p/8467613.html

深度學習常用的模型評估指標