機器學習:ACC、ROC和AUC


   

引言

   

很多時候我們都用到ROCAUC來評判一個二值分類器的優劣,其實AUCROC息息相關,AUC就是ROC曲線下部分的面積,所以需要首先知道什么是ROCROC怎么得來的。然后我們要知道一般分類器會有個准確率ACC,那么既然有了ACC,為什么還要有ROC呢,ACCROC的區別又在哪兒,這是我喜歡的一種既生瑜何生亮問題。

   

最后又簡單說明了一下有了ROC之后,為什么還要有AUC

   

ROC簡介

   

ROC曲線的橫坐標為false positive rate(FPR)即負類樣本中被判定為正類的比例,也就是傳說中的誤納率

   

縱坐標為true positive rate(TPR)即正類樣本中被判定為正類的樣本,1-TPR也就是傳說中的誤拒率

   

接下來我們考慮ROC曲線圖中的四個點和一條線。

   

第一個點,(0,1),即左上角的點,在這個點意味着FPR=0TPR=1,稍微翻譯一下就是誤納率為0,誤拒率為0,再翻譯成人話就是負類樣本中被判斷為正類的比例為0,說明負類樣本都被判斷為負類,判斷正確,正類樣本中被判斷為正類的比例為1,說明正類樣本都被判斷正確,所以這是一個完美的分類器,它將所有的樣本都正確分類。

   

第二個點,(1,0),即右下角的點,在這個點意味着FPR=1TPR=0,類似地分析可以發現這是一個最糟糕的分類器,因為它成功避開了所有的正確分類。把該判斷為正類的判斷為負類,把該判斷為負類的判斷為正類

   

第三個點,(0,0),即左下角的點,在這個點意味着FPR=TPR=0,可以發現該分類器預測所有的樣本都為負樣本(negative),在后面我們可以看到這種情況說明閾值選得過高。

   

第四個點(1,1),即右下角的點,分類器實際上預測所有的樣本都為正樣本,在后面我們可以看到這種情況說明閾值選得過低。

   

如何畫ROC曲線

   

由於每次從分類模型中只能得到一個用於判定分類結果的分數,要將這個分數與一個閾值進行比較,判定這個樣本屬於哪個類,所以我們可以更改閾值,得到不同的分類結果,也就是不同的TPR和FPR

   

之前說到當我們將threshold設置為1和0時,分別可以得到ROC曲線上的(0,0)和(1,1)兩個點

   

將這些(FPR,TPR)對連接起來,就得到了ROC曲線。當threshold取值越多,ROC曲線越平滑。

   

既然有了ACC為什么要有ROC呢(既生瑜何生亮呢)

   

我們知道,我們常用ACC准確率來判斷分類器分類結果的好壞,既然有了ACC為什么還需要ROC呢,很重要的一個因素是實際的樣本數據集中經常會出現數據偏斜的情況,要么負類樣本數大於正類樣本數,要么正類樣本數大於負類樣本數。

   

比如說我負類樣本數有9,000個,正類樣本數有100個,如果閾值選得過高,正類樣本都判斷為負類,同樣負類樣本都判定為負類,那么准確率90%,看起來還不錯,但是如果考慮ROC中的TPRFPR的話就會知道,此時的TPR=0FPR=0,也就是誤納率是0,但是誤拒率是100%,是左下角的點,並不是很好的一個點,而原來的ACC就不具有代表性

   

既然有了ROC為什么要有AUC呢(既生瑜何生亮呢)

   

使用AUC值作為評價標准是因為很多時候ROC曲線並不能清晰的說明哪個分類器的效果更好,而相對於AUC是個數值而言,對應AUC更大的分類器效果更好,數值更好判斷一些。

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM