1.簡介
ROC曲線與AUC面積均是用來衡量分類型模型准確度的工具。通俗點說,ROC與AUC是用來回答這樣的問題的:
-
- 分類模型的預測到底准不准確?
- 我們建出模型的錯誤率有多大?正確率有多高?
- 兩個不同的分類模型中,哪個更好用?哪個更准確?
一句話概括版本:
ROC是一條線,如果我們選擇用ROC曲線評判模型的准確性,那么越靠近左上角的ROC曲線,模型的准確度越高,模型越理想;
AUC是線下面積,如果我們選擇用AUC面積評判模型的准確性,那么模型的AUC面積值越大,模型的准確度越高,模型越理想;
2.數據分析與挖掘體系位置
ROC曲線與AUC面積都是評判模型結果的指標,因此屬於模型評估的一部分。此外,ROC曲線與AUC面積均多用於判斷分類器(Classifier)的優劣,因此適用於分類型的數據模型,如分類樹(Classification Tree)、邏輯回歸(Logistic Regression)、線性判別分析(Linear Discriminant Analysis)等方法。
在分類型模型評判的指標中,常見的方法有如下三種:
混淆矩陣(也稱誤差矩陣,Confusion Matrix)
ROC曲線
AUC面積
本篇主要介紹第二與第三種方法,即ROC曲線與AUC面積。
此方法在整個數據分析與挖掘體系中的位置如下圖所示。
3.ROC曲線的定義
ROC曲線全稱為受試者工作特征曲線(Receiver Operating Characteristic Curve)。雖然聽上去很高端,但是ROC其實非常容易理解。一句話說,ROC就是一張圖上的曲線,我們通過曲線的形狀來判定模型的好壞。
那么要想了解一個曲線代表什么意思,首先最好搞明白曲線的橫軸與縱軸分別代表什么。
下圖中顯示的是兩條ROC曲線,一條藍色,一條紅色。他們分別對應兩個不同的模型。我們可以看到,圖中橫軸寫着“False positive rate”,縱軸寫着“True positive rate”。
這兩個就是ROC曲線繪制的關鍵:我們通過計算分類模型的“False positive rate”與“True positive rate”值,分別把它們當成橫縱軸,就能夠繪制出這個模型的ROC曲線。
那么,怎么計算這兩個指標呢?
4.ROC曲線的計算
ROC曲線的橫軸與縱軸,與混淆矩陣(Confusion Matrix)有着密切的關系,具體的理解請詳見混淆矩陣篇的講解。這里只是簡單回顧一下:
在分類型模型中,以二分類為例,我們的模型結果一般可以視為0/1問題,或者說positive/negative的問題。模型的產出物,不是positive,就是negative。
我們通過樣本的采集,能夠直接知道真實的情況下,哪些數據結果是positive,哪些結果是negative。同時,我們通過用樣本數據跑出分類型模型的結果,也可以知道模型認為這些數據哪些是positive,哪些是negative。
因此,我們就能得到這樣四個結果:
真實值是positive,模型認為是positive的數量(True Positive=TP)
真實值是positive,模型認為是negative的數量(False Negative=FN)
真實值是negative,模型認為是positive的數量(False Positive=FP)
真實值是negative,模型認為是negative的數量(True Negative=TN)
將這四種結果一起呈現在表格中,就能得到如下這樣一個矩陣,我們稱它為混淆矩陣(Confusion Matrix):
從名字上就能看出,ROC的橫縱軸計算方式是與混淆矩陣有着密切關系的。
5.橫軸(False positive rate)(虛驚率=1-精確率)的計算:
橫軸的指標,在英文中被稱為False positive rate,簡稱FPR。FPR可以被理解為:在所有真實值為Negative的數據中,被模型錯誤的判斷為Positive的比例。其計算公式為:
6.縱軸(True Positive Rate)(查全率、靈敏度recall)的計算:
縱軸的指標,在英文中被稱為True Positive Rate,簡稱TPR。TPR可以被理解為:在所有真實值為Positive的數據中,被模型正確的判斷為Positive的比例。其計算公式為:
7.ROC曲線的解讀
FPR與TPR分別構成了ROC曲線的橫縱軸,因此我們知道在ROC曲線中,每一個點都對應着模型的一次結果。
- 如果ROC曲線完全在縱軸上,代表這一點上,x=0,即FPR=0。模型沒有把任何negative的數據錯誤的判為positive,預測完全准確。這是真正的大牛模型,我是做不出來了。
- 如果ROC曲線完全在橫軸上,代表這一點上,y=0,即TPR=0。模型沒有把任何positive的數據正確的判斷為positive,預測完全不准確。平心而論,這種模型能做出來也是蠻牛的,因為模型真正做到了完全不准確,所以只要反着看結果就好了嘛。
- 所以如果ROC曲線完全與右上方45度傾角線重合,證明模型的准確率是正好50%,錯判的幾率是一半一半。
因此,我們繪制出來ROC曲線的形狀,是希望TPR大,而FPR小。因此對應在圖上就是曲線盡量往左上角貼近。45度的直線一般被常用作Benchmark,即基准模型,我們的預測分類模型的ROC要能優於45度線,否則我們的預測還不如50/50的猜測來的准確。
所以,回到下圖。從整個圖上看,紅色的ROC線更靠近左上方。因此,紅色線代表的SVM分類器的表現要整體優於藍色線代表的LDA分類器。
8.ROC曲線的繪制
我們已經知道,ROC曲線中的每一個點就能代表一次預測的結果。那么整條ROC的曲線是如何繪制的呢?
答案就是:ROC曲線上的一系列點,代表選取一系列的閾值(threshold)產生的結果。
在分類問題中,我們模型預測的結果不是negative/positive。而是一個negatvie或positive的概率。那么在多大的概率下我們認為觀測值應該是negative或positive呢?這個判定的值就是閾值(threshold)。
ROC曲線上眾多的點,每個點都對應着一個閾值的情況下模型的表現。多個點連起來就是ROC曲線了。
9.AUC的定義與解讀
AUC的英文叫做Area Under Curve,即曲線下的面積,不能再直白。它就是值ROC曲線下的面積是多大。每一條ROC曲線對應一個AUC值。AUC的取值在0與1之間。
AUC = 1,代表ROC曲線在縱軸上,預測完全准確。不管Threshold選什么,預測都是100%正確的。
0.5 < AUC < 1,代表ROC曲線在45度線上方,預測優於50/50的猜測。需要選擇合適的閾值后,產出模型。
AUC = 0.5,代表ROC曲線在45度線上,預測等於50/50的猜測。
0 < AUC < 0.5,代表ROC曲線在45度線下方,預測不如50/50的猜測。
AUC = 0,代表ROC曲線在橫軸上,預測完全不准確。
————————————————
(版權聲明:本文為CSDN博主「Orange_Spotty_Cat」的原創文章https://blog.csdn.net/Orange_Spotty_Cat/article/details/80499031)