ROC曲線是一個分類模型效果好壞評判的的可視化表示。
在這篇文章中,我將分三個步驟頭開始構建ROC曲線。
步驟1:獲取分類模型預測
當我們訓練一個分類模型時,我們得到得到一個結果的概率。在這種情況下,我們的例子將是償還貸款的可能性。
概率通常在0到1之間。價值越高,這個人就越有可能償還貸款。
下一步是找到一個臨界值,將概率分類爲“會償還”或“不會償還”。
在圖1的例子中,我們選擇了0.35的閾值:
所有達到或超過這個門檻的預測,都被歸類爲“會償還”
所有低於這個閾值的預測,被歸類爲“不會償還”
然後我們看看這些預測是正確的還是錯誤的。有了這些信息,我們可以建立一個混淆矩陣。
所有真正積極的方面,那些真正回報的人,都是藍點。
如果他們被歸類爲“會償還”,我們有一個真正的積極(TP)
如果他們被歸類爲“不會償還”,我們就有了一個假陰性(FN)
所有的負的,那些沒有償還的,是紅點。
如果他們被歸類爲“不會償還”,我們就有了一個真正的負資產(TN)
如果他們被分類爲“將償還”,我們有一個假陽性(FP)
步驟2:計算真陽性率和假陽性率
到目前爲止,我們已經對所有的預測進行了分類,我們知道這些分類是否正確。有了這些,我們將計算下面兩個指標:
真陽性率(TPR):從過去所有“償還”的人,我們正確分類的百分比是多少
假陽性率(FPR):從所有過去“沒有償還”的人,我們有多少百分比的錯誤分類
我們可以在圖3中看到這些計算的公式。
下面,在圖4的第二個圖中,我們可以看到我們的原始示例在0.35的閾值處。此時,我們
正確分類90%的陽性,那些“回報”(TPR)
40%的負面評價,那些“沒有償還”的人(FPR)
我們可以看到,TPR和FPR的結果隨着閾值的增大而降低。如果我們看第一個,閾值爲0
所有陽性均正確分類,因此TPR = 100%
所有的陰性均被誤分類,因此FPR = 100%
在最後一個圖的例子中,閾值爲1:
所有陽性均誤診,因此TPR = 0%
所有陰性均正確分類,因此FPR = 0%
總的來說,我們可以看到這是一種取捨。當我們提高閾值時,我們會更好地對消極因素進行分類,但這是以錯誤地對更多積極因素進行分類爲代價的
步驟3:繪製每個截止點的TPR和FPR
爲了繪製ROC曲線,我們需要計算多個不同閾值的TPR和FPR(這一步包含在所有相關庫中,如scikit-learn)。
對於每個閾值,我們在x軸上繪製FPR值,在y軸上繪製TPR值。然後我們用一條線把這些點連接起來。就是這樣!
下面的圖5中,我們可以看到ROC曲線上的每個點是如何代表某一分類在給定截斷點處的FPR和TRP。
注意,1處的閾值是如何引出第一個點(0,0)而0處的閾值是如何引出最後一個點(1,1)的。
曲線下覆蓋的面積稱爲曲線下面積(AUC)。這是用來評價一個分類模型的性能。AUC越高,模型在區分類方面就越好。
這意味着在一個理想的世界中,我們希望我們的線覆蓋大部分左上方的圖形,以獲得更高的AUC。
作者:Valeria Cortez