分類算法常用的評價指標


該博文內容大部分是參考自Poll的筆記dzl_ML兩位博主的寫作內容,再經過自己的學習,理解和整理後形成該文。參考資料的鏈接在最後部分給出。

1,評價指標列表

在這裏插入圖片描述

2,基本概念

針對一個二分類問題,即將實例分成正類(positive)或負類(negative),在實際分類中會出現以下四種情況:
(1)若一個實例是正類,並且被預測爲正類,即爲真正類(True Positive TP)
(2)若一個實例是正類,但是被預測爲負類,即爲假負類(False Negative FN)
(3)若一個實例是負類,但是被預測爲正類,即爲假正類(False Positive FP)
(4)若一個實例是負類,並且被預測爲負類,即爲真負類(True Negative TN)

3,準確率(Accuracy)

  • 定義:對於給定的測試數據集,分類器正確分類的樣本數與總樣本數之比。
  • 計算公式:Accuracy=TP+TNTP+TN+FP+FNAccuracy = \frac{TP+TN}{TP+TN+FP+FN}
  • 缺點:在正負樣本不平衡的情況下,這個指標有很大的缺陷。例如:給定一組測試樣本共1100個實例,其中1000個是正類,剩餘100個是負類。即使分類模型將所有實例均預測爲正類,Accuracy也有90%以上,這樣就沒什麼意義了。

4,精確率(Precision)、召回率(Recall)和F1值

精確率和召回率是廣泛用於信息檢索和統計學分類領域的兩個度量值,用來評價結果的質量。其中:

  • 精確率是檢索出相關文檔數與檢索出的文檔總數的比率(正確分類的正例個數佔分類爲正例的實例個數的比例),衡量的是檢索系統的查準率precision=TPTP+FPprecision = \frac{TP}{TP+FP}
  • 召回率是指檢索出的相關文檔數和文檔庫中所有的相關文檔數的比率(正確分類的正例個數佔實際正例個數的比例),衡量的是檢索系統的查全率recall=TPTP+FNrecall = \frac{TP}{TP+FN}

爲了能夠評價不同算法優劣,在Precision和Recall的基礎上提出了F1值的概念,來對Precision和Recall進行整體評價。F1的定義如下:F1=2+F1 = \frac{精確率*召回率*2}{精確率+召回率}
我們當然希望檢索結果(分類結果)的Precision越高越好,同時Recall也越高越好,但事實上這兩者在某些情況下有矛盾的。比如極端情況下,我們只搜索出了一個結果,且是準確的(分類後的正確實例只有一個,且該實例原本就是正實例),那麼Precision就是100%,但是Recall就會很低;而如果我們把所有結果都返回(所有的結果都被分類爲正實例),那麼Recall是100%,但是Precision就會很低。因此在不同的場合中需要自己判斷希望Precision比較高還是Recall比較高。如果是做實驗研究,可以繪製Precision-Recall曲線來幫助分析。

5,綜合評價指標F-Measure

Precision和Recall指標有時候會出現矛盾的情況,這樣就需要綜合考慮他們,最常見的方法就是F-Measure(又稱爲F-Score)。F-Score是Precision和Recall的加權調和平均:F=(a2+1)PRa2(P+R)F=\frac{(a^2+1)P*R}{a^2(P+R)}
當參數a=1a=1時,就是最常見的F1.因此,F1綜合了P和R的結果,當F1較高時則能說明試驗方法比較有效。

6,ROC曲線和AUC

6.1,TPR、FPR&TNR

在介紹ROC和AUC之前,我們需要明確以下幾個概念:

  • 真正類率(true positive rate, TPR),也稱爲sensitivity,刻畫的是被分類器正確分類的正實例佔所有正實例的比例。TPR=TPTP+FNTPR=\frac{TP}{TP+FN}
  • 負正類率(false positive rate, FPR),也稱爲1-specificity,計算的是被分類器錯認爲正類的負實例佔所有負實例的比例。FPR=FPFP+TNFPR =\frac{FP}{FP+TN}
  • 真負類率(true negative rate, TNR),也稱爲specificity,刻畫的是被分類器正確分類的負實例佔所有負實例的比例。TNR=1FPR=TNFP+TNTNR = 1 - FPR = \frac{TN}{FP+TN}

6.2 ,爲什麼引入ROC曲線?

  • Motivation1:在一個二分類模型中,對於所得到的連續結果,假設已確定一個閾值,比如說0.6,大於這個值的實例爲正類,小於這個值則爲負類。如果減小閾值,比如減到0.5,固然能之別出更多的正類,也就是提高了識別出的正例佔所有正例的比例,即TPR值變大;但同時也將更多的負實例當作了正實例,即,提高了FPR。爲了形象化這一變化,引入了ROC,ROC可以用於評價一個分類器。
  • Motivation2:在類不平衡的情況下,如正樣本90個,負樣本10個,直接把所有樣本分類爲正樣本,得到識別率爲90%。但這顯然是沒有意義的。單純根據Precision和Rcall來衡量算法的優劣已經不能表徵這種病態問題。

6.3 ,什麼是ROC曲線?

ROC曲線:接收者操作特徵(receiver operating characteristic),ROC曲線上每個點反映着對同一信號刺激的感受性。

  • 橫軸:負正類率(FPR,特異度);
  • 縱軸:真正類率(TPR,靈敏度)。

以邏輯迴歸分類器(LR)舉例,LR給出了針對每個實例爲正類的概率,那麼通過設定一個閾值如0.6,概率大於等於0.6的爲正類,小於0.6的爲負類。對應的就可以算出一組(FPR,TPR),在平面中得到對應座標點。隨着閾值的逐漸減小,越來越多的實例被劃分爲正類,但是這些正類匯中同樣也摻雜着真正的負實例,即TPR和FPR會同時增大。閾值最大時,對應座標點爲(0,0),閾值最小時,對應座標點(1,1)。如下這幅圖,圖(a)中實線爲ROC曲線,線上每個點對應一個閾值。
在這裏插入圖片描述
理想目標: TPR=1, FPR=0,即圖中(0,1)點。故ROC曲線越靠攏(0,1)點,即,越偏離45度對角線越好。

6.4,如何畫ROC曲線

假設已經得出一系列被劃分爲正類的概率,然後按照大小排序,下圖是一個示例,圖中共有20個測試樣本,“Class”一欄表示每個測試樣本真正的標籤(p表示正樣本,n表示負樣本),“Score”表示每個測試樣本屬於正樣本的概率。
在這裏插入圖片描述
接下來,我們從高到低,依次將“Score”值作爲閾值threshold,當測試樣本屬於正樣本的概率大於或等於這個threshold時,我們認爲它爲正樣本,否則爲負樣本。舉例來說,對於圖中的第4個樣本,其“Score”值爲0.6,那麼樣本1,2,3,4都被認爲是正樣本,因爲它們的“Score”值都大於等於0.6,而其他樣本則都認爲是負樣本。每次選取一個不同的threshold,我們就可以得到一組FPR和TPR,即ROC曲線上的一點。這樣一來,我們一共得到了20組FPR和TPR的值,將它們畫在ROC曲線的結果如下圖:
在這裏插入圖片描述

6.5,什麼是AUC曲線?

AUC(Area Under Curve):ROC曲線下的面積,介於0.1和1之間。AUC作爲數值可以直觀的評價分類器的好壞,值越大越好。
AUC的物理意義:首先AUC值是一個概率值。假設分類器的輸出是樣本屬於正類的Score(置信度),則AUC的物理意義爲,任取一對(正、負)樣本,正樣本的Score大於負樣本的Score的概率。

6.6,怎樣計算AUC?

  • 方法一:AUC爲ROC曲線下的面積,那我們直接極端面積可得。面積爲一個個小的梯形面積之和。計算的精度與閾值的精度有關。

  • 方法二:根據AUC的物理意義,我們計算正樣本Score大於負樣本Score的概率。取NM(NM)N*M(N爲正樣本數,M爲負樣本數)個二元組,比較Score,最後得到AUC。時間複雜度爲O(NM)O(N*M)
    具體的計算方法詳見AUC的計算方法

  • 方法三:我們首先把所有樣本按照score排序(從小到大或從大到小),依次用rank表示他們,如,按從大到小排序的時候,最大score的樣本序號值rank=nrank=n,其中n=M+Nn=M+N,其次是n1n-1。然後利用下面的公式計算AUC,
    AUC=rankM(M1)2MNAUC = \frac{\sum_{所有正樣本}rank-\frac{M*(M-1)}{2}}{M*N}
    其中,rank\sum_{所有正樣本}rank 表示所有正樣本的序號值rankrank之和;時間複雜度是O(M+N)O(M+N)
    具體的計算案例詳見AUC的計算方法

7,爲什麼使用ROC和AUC評價分類器呢?

既然已經這麼多標準,爲什麼還要使用ROC和AUC呢?因爲ROC曲線有個很好的特性:當測試集中的正負樣本的分佈變換的時候,ROC曲線能夠保持不變。在實際的數據集中經常會出現樣本類不平衡,即正負樣本比例差距較大,而且測試數據中的正負樣本也可能隨着時間變化。下圖是ROC曲線和Presision-Recall曲線的對比:
在這裏插入圖片描述
在上圖中,(a)和©爲Roc曲線,(b)和(d)爲Precision-Recall曲線。
(a)和(b)展示的是分類其在原始測試集(正負樣本分佈平衡)的結果,©(d)是將測試集中負樣本的數量增加到原來的10倍後,分類器的結果,可以明顯的看出,ROC曲線基本保持原貌,而Precision-Recall曲線變化較大。

8,參考資料

https://www.cnblogs.com/maybe2030/p/5375175.html#_label3
https://www.cnblogs.com/dlml/p/4403482.html
https://blog.csdn.net/qq_22238533/article/details/78666436

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章