機器學習 ACC ROC和AUC

2021-10-19 02:46:25 字數 1437 閱讀 9587

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

最後又簡單說明了一下有了roc之後,為什麼還要有auc呢

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

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

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

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

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

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

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

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

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

將這些(fpr,tpr)對連線起來,就得到了roc曲線。當threshold取值越多,roc曲線越平滑。

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

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

既然有了roc為什麼要有auc呢(既生瑜何生亮呢)

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

機器學習和統計中的AUC

首先,在試圖弄懂auc和roc曲線之前,一定,一定要徹底理解混淆矩陣的定義!混淆矩陣中有著positive negative true false的概念,其意義如下 稱 類別為1的為positive 陽性 類別為0的為negative 陰性 正確的為true 真 錯誤的為false 偽 對上述概念進...

深度學習auc 如何理解機器學習和統計中的AUC?

之前各位的回答從各個角度解釋了auc的意義和計算方法,但是由於本人實在愚鈍,一直沒能參透auc的意義和計算方法之間的聯絡,直到剛才突然有所頓悟,本著盡量言簡意賅 淺顯易懂的原則,在這裡記錄一下。首先,在試圖弄懂auc和roc曲線之前,一定,一定要徹底理解混淆矩陣的定義!混淆矩陣中有著positive...

機器學習推薦系統評價指標之AUC

auc是機器學習模型中常見評價指標,在推薦系統中也十分常見。和常見的評價指標acc,p,r相比,auc具備一定的優勢。一般說起auc,都會從混淆矩陣,acc,精確率p,召回率r,然後說到roc,再到auc,我在這裡簡單的梳理一下 由混淆矩陣引出tp,fp,fn和tn。接著引出準確率,精確率,召回率和...