評價分類器效能指標之AUC ROC

2021-10-05 22:45:50 字數 2630 閱讀 8154

本文內容大部分來自於如下兩個部落格:

假設有下面兩個分類器,哪個好?(樣本中有a類樣本90個,b 類樣本10個。)

、a類樣本

b類樣本

分類精度

分類器c1

a*90(100%)

a*10(0%)

90%分類器c2

a*70 + b*20 (78%)

a*5 + b*5 (50%)

75% 分類器c1把所有的測試樣本都分成了a類,分類器c2把a類的90個樣本分對了70個,b類的10個樣本分對了5個。

則c1的分類精度為 90%,c2的分類精度為75%,但直覺上,我們感覺c2更有用些。但是依照正確率來衡量的話,那麼肯定c1的效果好一點。那麼這和我們認為的是不一致的。也就是說,有些時候,僅僅依靠正確率是不妥當的。

我們還需要乙個評價指標,能客觀反映對正樣本、負樣本綜合**的能力,還要考慮消除樣本傾斜的影響(其實就是歸一化之類的思想,實際中很重要,比如pv總是遠遠大於click),這就是auc指標能解決的問題。

為了理解auc,我們需要先來弄懂roc。

先來看乙個普遍的二分類問題的結果,**值和實際值有4種組合情況,看下面的**:

我們定義乙個變數:

看圖也就可以知道,tpr表示的就是**正確且實際分類為正的數量 與 所有正樣本的數量的比例。--實際的正樣本中,正確**的比例是多少?

fpr表示的是**錯誤且實際分類為負的數量 與所有負樣本數量的比例。 --實際的負樣本當中,錯誤**的比例是多少?

可以代入到上面的兩個分類器當中,可以得到下面的**(分類器c1):

、**a

**b合計

實際a90090

實際b10010

tpr = fpr = 1.0.

分類器c2:

、**a

**b合計

實際a70

2090

實際b5510

tpr = 0.78, fpr = 0.5

那麼,以tpr為縱座標,fpr為橫座標畫圖,可以得到:

上圖中藍色表示c1分類器,綠色表示c2分類器。可以知道,這個時候綠色的點比較靠近左上角,可以看做是分類效果較好。所以評估標準改為離左上角近的是好的分類器(考慮了正負樣本的綜合分類能力)。

一連串這樣的點構成了一條曲線,該曲線就是roc曲線。而roc曲線下的面積就是auc(area under the curve of roc)。這就是auc指標的由來。

對於乙個特定的分類器和測試資料集,顯然只能得到乙個分類結果,即一組fpr和tpr結果,而要得到乙個曲線,我們實際上需要一系列fpr和tpr的值才能得到這樣的曲線,這又是如何得到的呢?

可以通過分類器的乙個重要功能「概率輸出」,即表示分類器認為某個樣本具有多大的概率屬於正樣本(或負樣本),來動態調整乙個樣本是否屬於正負樣本(還記得當時阿里比賽的時候有乙個表示被判定為正樣本的概率的列麼?)

假如我們已經得到了所有樣本的概率輸出(屬於正樣本的概率),現在的問題是如何改變這個閾值(概率輸出)?我們根據每個測試樣本屬於正樣本的概率值從大到小排序。下圖是乙個示例,圖中共有20個測試樣本,「class」一欄表示每個測試樣本真正的標籤(p表示正樣本,n表示負樣本),「score」表示每個測試樣本屬於正樣本的概率。

接下來,我們從高到低,依次將「score」值作為閾值,當測試樣本屬於正樣本的概率大於或等於這個閾值時,我們認為它為正樣本,否則為負樣本。舉例來說,對於圖中的第4個樣本,其「score」值為0.6,那麼樣本1,2,3,4都被認為是正樣本,因為它們的「score」值都大於等於0.6,而其他樣本則都認為是負樣本。每次選取乙個不同的閾值,我們就可以得到一組fpr和tpr,即roc曲線上的一點。這樣一來,我們一共得到了20組fpr和tpr的值,將它們畫在roc曲線的結果如下圖:

當我們將閾值設定為1和0時,分別可以得到roc曲線上的(0,0)和(1,1)兩個點。將這些(fpr,tpr)對連線起來,就得到了roc曲線。當閾值取值越多,roc曲線越平滑。

--在阿里比賽的時候還以為roc是沒用的!!!!真的是有眼無珠啊!!!還是有疑惑的是:如何根據roc來判定結果的好換呢?看哪個分類器更加接近左上角吧。同時,可以根據roc來確定劃定正樣本的概率邊界選擇在**比較合適!!!原來是這樣!!!!!!!!!

既然已經這麼多評價標準,為什麼還要使用roc和auc呢?因為roc曲線有個很好的特性:當測試集中的正負樣本的分布變化的時候,roc曲線能夠保持不變。在實際的資料集中經常會出現類不平衡(class imbalance)現象,即負樣本比正樣本多很多(或者相反),而且測試資料中的正負樣本的分布也可能隨著時間變化。下圖是roc曲線和precision-recall曲線的對比:

在上圖中,(a)和(c)為roc曲線,(b)和(d)為precision-recall曲線。(a)和(b)展示的是分類其在原始測試集(正負樣本分佈平衡)的結果,(c)和(d)是將測試集中負樣本的數量增加到原來的10倍後,分類器的結果。可以明顯的看出,roc曲線基本保持原貌,而precision-recall曲線則變化較大。

機器學習 分類器效能指標

1.錯誤率 e 錯誤分類個數 總樣本數 2.正確率 tp 分類正確正例 tn 分類正確負例 fp 分類錯誤正例 fn 分類錯誤負例 precision 分類正確的正類 結果中被分為正類的個數 tp tp fp 3.召回率 recall 分類正確的正類 所有正類的個數 tp tp fn 4.f1 sc...

分類器評價指標

by the way,classic post like 分類指標準確率 precision 和正確率 accuracy 的區別 精度和召回率是廣泛用於資訊檢索和統計學分類領域的兩個度量值,用來評價結果的質量。其中精度是檢索出相關文件數與檢索出的文件總數的比率,衡量的是檢索系統的查準率 召回率是指檢...

資料建模 分類器效能指標 效能測評

表示分類正確 true positive 本來是正樣例,分類成正樣例。true negative 本來是負樣例,分類成負樣例。表示分類錯誤 false positive 本來是負樣例,分類成正樣例,通常叫誤報。false negative 本來是正樣例,分類成負樣例,通常叫漏報。準確度 真正類率 t...