一下內容轉載自:https://zh.wikipedia.org/wiki/ROC%E6%9B%B2%E7%BA%BF
ROC(Receiver Operating Characteristic)曲線和AUC常被用來評價一個二值分類器(binary classifier)的優劣。
1) ROC曲線
在信號檢測理論中,接收者操作特征曲線(receiver operating characteristic curve,或者叫ROC曲線)是一種坐標圖式的分析工具,用於 (1) 選擇最佳的信號偵測模型、舍棄次佳的模型。 (2) 在同一模型中設定最佳閾值。
在做決策時,ROC分析能不受成本/效益的影響,給出客觀中立的建議。在機器學習的可能就是不受訓練數據的影響,可以直接評價該模型的的性能。
分類模型(又稱分類器,或診斷)是將一個實例映射到一個特定類的過程。ROC分析的是二元分類模型,也就是輸出結果只有兩種類別的模型,例如:(陽性/陰性)(有病/沒病)(垃圾郵件/非垃圾郵件)(敵軍/非敵軍)。當分類的的對象是一個連續值時必須要使用閾值進行分隔,分隔點就叫做分隔門限。
二元分類有四種結果(以高血壓預測為例):
- 真陽性(TP):診斷為有,實際上也有高血壓。
- 偽陽性(FP):診斷為有,實際卻沒有高血壓。
- 真陰性(TN):診斷為沒有,實際上也沒有高血壓。
- 偽陰性(FN):診斷為沒有,實際卻有高血壓。
關於上面這四種結果記起來比較繞,TRUE FALSE前面的表示預測結果的是否正確,TRUE表示預測對了,FALSE表示預測錯了。POSTIVE、NEGTIVE表示預測的結果是什么,N表示預測的結果是負樣本,P表示預測的結果是正樣本。
在上面的四種分類結果中T表示true也就是表示預測的結果是正確的,false則表示預測的結果是錯誤的;postive則表示訓練數據的真實分類為正的,negtive表示訓練數據的真實分類為負。對以上的結果可以使用一個2*2的矩陣進行描述:
從上面的二維矩陣中可以引出一下幾個指標:這些東西的起名都是預測的類別相對與真實的樣本之間稱呼。
- TPR:在所有實際為陽性的樣本中,被正確地判斷為陽性之比率。
- FPR:在所有實際為陰性的樣本中,被錯誤地判斷為陽性之比率。
2) ROC空間
ROC空間將偽陽性率(FPR)定義為 X 軸,真陽性率(TPR)定義為 Y 軸。就能從所有樣本的(陽性/陰性)真實值和預測值計算出一個 (X=FPR, Y=TPR) 座標點。從 (0, 0) 到 (1,1) 的對角線將ROC空間划分為左上/右下兩個區域,在這條線的以上的點代表了一個好的分類結果(勝過隨機分類),而在這條線以下的點代表了差的分類結果(劣於隨機分類)。
完美的預測是一個在左上角的點,在ROC空間座標 (0,1)點,X=0 代表着沒有偽陽性,Y=1 代表着沒有偽陰性(所有的陽性都是真陽性);也就是說,不管分類器輸出結果是陽性或陰性,都是100%正確。一個隨機的預測會得到位於從 (0, 0) 到 (1, 1) 對角線(也叫無識別率線)上的一個點;最直觀的隨機預測的例子就是拋硬幣。
讓我們來看在實際有100個陽性和100個陰性的案例時,四種預測方法(可能是四種分類器,或是同一分類器的四種閾值設定)的結果差異:
對以上的四個例子進行分析:
- 點與隨機猜測線的距離,是預測力的指標:離左上角越近的點預測(診斷)准確率越高。離右下角越近的點,預測越不准。
- 在A、B、C三者當中,最好的結果是A方法。
- B方法的結果位於隨機猜測線(對角線)上,在例子中我們可以看到B的准確度(ACC,預測結果和真實分類相同的比例)是50%。
- C雖然預測准確度最差,甚至劣於隨機分類,也就是低於0.5(低於對角線)。然而,當將C以 (0.5, 0.5) 為中點作一個鏡像后,C'的結果甚至要比A還要好。這個作鏡像的方法,簡單說,不管C(或任何ROC點低於對角線的情況)預測了什么,就做相反的結論。
3) ROC曲線
上面的ROC空間中的單點是在給定模型並且給定閾值的情況下得出的點,但是對於同一模型來說可能會有很多的閾值,那么將同一模型的所有閾值產生的點放到ROC空間中形成的曲線就是ROC曲線。
- 將同一模型每個閾值 的 (FPR, TPR) 座標都畫在ROC空間里,就成為特定模型的ROC曲線。
比較不同分類器時,ROC曲線的實際形狀,便視兩個實際分布的重疊范圍而定,沒有規律可循。
在同一個分類器之內,閾值的不同設定對ROC曲線的影響,仍有一些規律可循:
- 當閾值設定為最高時,亦即所有樣本都被預測為陰性,沒有樣本被預測為陽性,此時在偽陽性率 FPR = FP / ( FP + TN ) 算式中的 FP = 0,所以 FPR = 0%。同時在真陽性率(TPR)算式中, TPR = TP / ( TP + FN ) 算式中的 TP = 0,所以 TPR = 0%
- → 當閾值設定為最高時,必得出ROC座標系左下角的點 (0, 0)。
- 當閾值設定為最低時,亦即所有樣本都被預測為陽性,沒有樣本被預測為陰性,此時在偽陽性率FPR = FP / ( FP + TN ) 算式中的 TN = 0,所以 FPR = 100%。同時在真陽性率 TPR = TP / ( TP + FN ) 算式中的 FN = 0,所以 TPR=100%
- → 當閾值設定為最低時,必得出ROC座標系右上角的點 (1, 1)。
- 因為TP、FP、TN、FN都是累積次數,TN和FN隨着閾值調低而減少(或持平),TP和FP隨着閾值調低而增加(或持平),所以FPR和TPR皆必隨着閾值調低而增加(或持平)。
- → 隨着閾值調低,ROC點 往右上(或右/或上)移動,或不動;但 絕不會往左/下/左下移動。
4) AUC曲線下面積
在比較不同的分類模型時,可以將每個模型的ROC曲線都畫出來,比較曲線下面積做為模型優劣的指標。
意義[編輯]
ROC曲線下方的面積(英語:Area under the Curve of ROC (AUC ROC)),其意義是:
因為是在1x1的方格里求面積,AUC必在0~1之間。
假設閾值以上是陽性,以下是陰性;
若隨機抽取一個陽性樣本和一個陰性樣本,分類器正確判斷陽性樣本的值高於陰性樣本之概率[1]。
簡單說:AUC值越大的分類器,正確率越高。
從AUC判斷分類器(預測模型)優劣的標准:
- AUC = 1,是完美分類器,采用這個預測模型時,存在至少一個閾值能得出完美預測。絕大多數預測的場合,不存在完美分類器。
- 0.5 < AUC < 1,優於隨機猜測。這個分類器(模型)妥善設定閾值的話,能有預測價值。
- AUC = 0.5,跟隨機猜測一樣(例:丟銅板),模型沒有預測價值。
- AUC < 0.5,比隨機猜測還差;但只要總是反預測而行,就優於隨機猜測。
計算
采用梯形法,將每個點與點之間使用直線相連,形成一個個的梯度,這樣直接計算這些梯度的面積進行求和。
- 優點:簡單,所以常用。
- 缺點:傾向於低估AUC。
離散分類器(英語:discrete,或稱“間斷分類器”),如決策樹,產生的是離散的數值或者一個二元標簽。應用到實例中,這樣的分類器最后只會在ROC空間產生單一的點。而一些其他的分類器,如朴素貝葉斯分類器,邏輯回歸或者人工神經網絡,產生的是實例屬於某一類的可能性,對於這些方法,一個閾值就決定了ROC空間中點的位置。舉例來說,如果可能值低於或者等於0.8這個閾值就將其認為是陽性的類,而其他的值被認為是陰性類。這樣就可以通過畫每一個閾值的ROC點來生成一個生成一條曲線。
對於分類器只有閾值可調時才能產生ROC曲線否則只是ROC空間的一個單點。