您好,登錄后才能下訂單哦!
這篇文章主要介紹“ROC曲線和AUC值是什么”,在日常操作中,相信很多人在ROC曲線和AUC值是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ROC曲線和AUC值是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
二分類模型預測的結果是否足夠好,ROC和AUC是重要指標。
首先我們先了解這四個概念:
T:True,真的
F:False,假的
P:Positive,陽性
N:Negative,陰性
R:Rate,比率,和上面四個沒直接關系
比如說看病這個事情:
一個人得病了,但醫生檢查結果說他沒病,那么他是假沒病,也叫假陰性(FN)
一個人得病了,醫生檢查結果也說他有病,那么他是真有病,也叫真陽性(TP)
一個人沒得病,醫生檢查結果卻說他有病,那么他是假有病,也叫假陽性(FP)
一個人沒得病,醫生檢查結果也說他沒病,那么他是真沒病,也叫真陰性(TN)
這四種結局可以畫成2 × 2的混淆矩陣:
FN、TP、FP、TN可以這樣理解:第二個字母(N或P)是醫生說的,第一個字母(T或F)是對醫生說法的肯定(真沒病真陰TN,真有病真陽TP)或否定(假有病假陽FP,假沒病假陰FN)。2. 查出率TPR和查錯率FPR
R是Rate(比率),那么:
TPR,真陽率等于真陽數量除以真陽加假陰,就是真的有病并且醫生判斷也有病的病人數量除以全部真有病的人(真有病醫生也說有病的真陽+真有病醫生卻說沒病的假陰):
FPR,假陽率等于假陽數量除以假陽加真陰,就是沒病但醫生說有病的病人數量除以全部實際沒病的人(沒病但醫生說有病的+沒病醫生也說沒病的):
所以說,TPR真陽率是對有病的人的查出率,有病的人里面查出來多少個;而FPR假陽率則是對沒病人員的誤檢率,沒病的人里面誤檢了多少個。
ACC,Accuracy,精準度,有病被檢查出來的TP是檢測對了,沒病也檢測健康的TN也是檢測對了,所有檢測對的數量除以全部數量就是精準度:
假如說我們編寫了一個算法M,它能夠根據一系列的屬性(比如身高、愛好、衣著、飲食習慣等)來預測一個人的性別是男還是女。
然后我們有10個人屬性組數據讓算法M來預測,這10個人的真實性別和預測結果如下:
預測值中0代表女性,1代表男性,數字越大越接近男性特征,數字越小越接近女性特征。如果我們設定區分男女的閾值是0.5,那么預測值大于0.5的都是P正向男性,小于0.5都是N負向女性。
那么,真實6個男人中有[1,3,5,8,9]這5個都查出來了,算法M的查出率TPR=5/6=0.833;真實4個女性中6號被查錯,所以誤檢率FPR=1/4=0.25;精度是ACC=(5+3)/10=0.8。
但是注意,如果我們修改閾值等于0.4,那么就會變為6個男人全被檢出TPR=1;而女性則被誤檢2個FPR=0.5;精度仍然是0.8。
假設我們有一個庸醫,根本不懂醫術,當病人來檢查是否有病的時候,他就隨機亂寫有病或者沒病,結果呢,對于所有真實有病的,庸醫也能正確檢查出一半,就是TPR=0.5,同樣對于沒病的也是一半被誤檢,就是FPR=0.5。
這個庸醫的“隨機診法”原理上總能得到相等的查出率和誤檢率,如果我們把FPR當做坐標橫軸,TPR當做數軸,那么“隨機診法”對應了[0,0]到[1,1]的那條直線。
如圖所示,越靠近左上角的情況查出率越高,查錯率越低,[0,1]點是最完美的狀態。而越靠近右下角,算法質量越低。
注意圖中右下角C點,這里查錯率高,查出率低,屬于很糟糕的情況;但是如果我們把C點沿紅色斜線對稱上去成為C'點,那就很好了。——所以,如果你的算法預測結果總是差的要死,那么可以試試看把它顛倒一下,負負得正,也許就很好了。
ROC(Receiver Operating Characteristic curve)接受者操作特征曲線。
上面我們都只是把從一組預測樣本得到的[FPR,TPR]作為一個點描述,并且我們知道閾值的改變會嚴重影響FPR和TPR,那么,如果我們把所有可能的閾值都嘗試一遍,再把樣本集預測結果計算得到的所有[FPR,TPR]點都畫在坐標上,就會得到一個曲線:
一般閾值范圍是在0~1之間,1表示一個分類(男,或者有病),0表示另外一個分類(女,或者無病)。
在這個圖中,注意:
橫豎都不是閾值坐標軸,這里沒有顯示閾值。
藍色線更加靠近左上角,比紅色線更好。
ROC曲線上左側的點好解釋,誤查率FPR越低,查出率TRP越高,自然是好的;但右上角的怎么解釋?誤查率和查出率都很高。——想象一下,有個庸醫把閾值調的很高比如0.99,那么導致算法推測出來的都是男生,沒有女生,這樣的情況當然查出率很高(所有男生都查出來了),誤查率也很高(所有女生都被當成男生了)。
ROC曲線的形狀不太好量化比較,于是就有了AUC。
AUC,Area under the Curve of ROC (AUC ROC),就是ROC曲線下面的面積。如上圖,藍色曲線下面的面積更大,也就是它的AUC更大。
如圖,左側的紅色折線覆蓋了下面整個方形面積,AUC=1;中間的曲線向左上方凸起,AUC=0.8;右邊的是完全隨機的結果,占一半面積,AUC=0.5。
AUC面積越大,算法越好。
當我們寫好算法之后,可以用一個測試集來讓這個算法進行分類預測,然后我們繪制ROC曲線,觀察AUC面積,計算ACC精度,用這些來對算法的好壞進行簡單評估。
到此,關于“ROC曲線和AUC值是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。