Receiver Operating curve(ROC) 受試者操作特征曲線-它拯救了英國
概述
AUC(area under the curve)是機器學習領域中一種常見且重要的模型評估指標,用于計算二元分類器效率的方法。AUC表示roc(receiver operator characteristic)曲線下的面積,即AUC?= roc 曲線下面積。
起源-雷達救了英國
很多統(tǒng)計指標來源于戰(zhàn)爭。roc最早用于英國雷達分辨鳥或德國飛機的概率。二戰(zhàn)期間首次用于分析雷達有效性。在早些時候雷達,有時很難從飛機上分辨出一只鳥。英國人率先使用 roc 曲線來優(yōu)化他們依賴雷達進行判別的方式在來襲的德國飛機和鳥類之間。


二戰(zhàn)時英國的反入侵戰(zhàn)備是英國為了抵抗可能發(fā)生的德軍入侵,而于1940年和1941年間做出的準備。在這期間,英國政府建立了英國國土警衛(wèi)隊,并在英國全境修建了防御工事。在缺少重型裝備的情況下,英軍需要將手中的一切可用資源運用到極致。
由于在不列顛空戰(zhàn)中戰(zhàn)敗,德國為入侵英國而開展的海獅計劃遭到了無限期的推延。英國也就沒能在其本土與德國陸軍展開戰(zhàn)斗。今天,英國修建的大部分防御工事都已消失,只有一些加固過的混凝土工事還較常見。
自不列顛空戰(zhàn)正式打響開始,英國皇家空軍和海軍航空兵就肩負起了保衛(wèi)英國領空的任務。它們與德國空軍進行了激烈的戰(zhàn)斗以使英國上空的制空權不被敵人奪走,而制空權是納粹德國非??粗氐?。
如果德國空軍成功地占領了英國領空,那么英國空軍剩余的極少數(shù)飛機將會轉(zhuǎn)移到英格蘭東南部的機場。英國人在撤走時會將機場的跑道破壞掉。這些飛機將會與英國皇家海軍一起打擊德國艦隊。盡管還未奪取制空權的德國空軍比英國空軍強大,但英國戰(zhàn)機也有優(yōu)勢,它們大多是在己方領空執(zhí)行任務,而每次任務的持續(xù)時間也會比跨越海峽飛來的德軍戰(zhàn)機長。
英國空軍將所有還能飛的戰(zhàn)斗機都調(diào)用了起來。而戰(zhàn)斗機以外的其它飛機都被改裝成了轟炸機,一些新飛行員也會開著擁有簡易投彈裝置的教練機對德占區(qū)進行轟炸。[11]
二戰(zhàn)開始之前,英國在英格蘭南部修建了一套雷達系統(tǒng),其中有三座雷達站從1937年起開始運行。[12][13]盡管德軍高層對英國此舉有所懷疑,但德國空軍并沒有做出實際行動。后來正是這些雷達站挽救了英國。

roc接收器操作特性曲線特點?
接收器操作特性(roc) 曲線:由分類算法的一個參數(shù)參數(shù)化的二維曲線。
可以通過在 y 軸上繪制 TPR 和在 x 軸上繪制 TNR 來獲得 roc 曲線。
AUC 用于衡量模型的區(qū)分能力。AUC 始終介于 0 和 1 之間,AUC的值越接近1,表示模型區(qū)分能力越好,AUC的值越接近0,模型區(qū)分能力越差,AUC的值等于0.5,表示模型區(qū)分能力是隨機的。
在風控金融領域,大數(shù)據(jù)殘缺不全,垃圾數(shù)據(jù)較多,模型AUC值一般在0.6-0.7之間。如果模型AUC值能超過0.8表示,模型非常優(yōu)秀,我在多年金融風控建模項目中,很少看到模型AUC能超過0.8.
roc圖如下

用sensitivity和specificity解釋roc圖

AUC 始終介于 0 和 1 之間,AUC的值越接近1,表示模型區(qū)分能力越好,AUC的值越接近0,模型區(qū)分能力越差,AUC的值等于0.5,表示模型區(qū)分能力是隨機的。

roc曲線的閾值問題
sensitivity=黑色豎線右邊紅色像素面積/紅色像素總面積
false positive=黑色豎線右邊綠色像素面積/藍色像素總面積
當我們對不同的閾值進行遍歷時,產(chǎn)生的 (假陽率, 真陽率) 坐標點也就可以連成roc曲線,進而求得曲線下面積AUC。

?
TP,F(xiàn)P,F(xiàn)N,TN與roc關系圖如下

藍色表示不接受,紅色表示接受。我們用軟件對兩種顏色重疊不同位置時,觀察左上角roc曲線變化和閾值變化。

?

?

?
?

?
?

?這種roc很難區(qū)別分類,兩種顏色基本重疊,AUC值接近0.5

?
?
roc應用
roc應用1
我們必須對屬于 A 類或 B 類的產(chǎn)品進行分類。?
?

roc?應用2
面試,(+)表示適合工作的候選人,(-)表示不適合工作的候選人。?

roc?應用3
roc曲線常用于醫(yī)療領域,特別是判斷儀器檢測效果。roc能很容易地查出任意界限值時的對疾病的識別能力。
選擇最佳的診斷界限值。roc曲線越靠近左上角,試驗的準確性就越高。最靠近左上角的roc曲線的點是錯誤最少的最好閾值,其假陽性和假陰性的總數(shù)最少。
兩種或兩種以上不同診斷試驗對疾病識別能力的比較。在對同一種疾病的兩種或兩種以上診斷方法進行比較時,可將各試驗的roc曲線繪制到同一坐標中,以直觀地鑒別優(yōu)劣,靠近左上角的roc曲線所代表的受試者工作最準確。亦可通過分別計算各個試驗的roc曲線下的面積(AUC)進行比較,哪一種試驗的 AUC最大,則哪一種試驗的診斷價值最佳。

所有術語計算公式如下
TP,F(xiàn)N,TN,F(xiàn)P,F(xiàn)N
TP(True Positive)=A類產(chǎn)品的數(shù)量,屬于A類產(chǎn)品。?
FN (False Negative) = A 類產(chǎn)品的數(shù)量,屬于 B 類產(chǎn)品。?
TN (True Negative) = B 類產(chǎn)品的數(shù)量,屬于 B 類產(chǎn)品。?
FP(False Positive)= B類產(chǎn)品的數(shù)量,屬于A類產(chǎn)品。
FP = N-TP;// 其中數(shù)字 N 是 A 類產(chǎn)品的數(shù)量
FN = M-TN;// 其中 number M 是 B 類產(chǎn)品的數(shù)量
為了讓大家更好立即,附上英文釋義
TP (True Positive) = number of Class A products, which are classified as Class A products.?
FN (False Negative) = number of Class A products, which are classified as Class B products.?
TN (True Negative) = number of Class B products, which are classified as Class B products.?
FP (False Positive) = number of Class B products, which are classified as Class A products.
FP = N-TP;? ?// where number N is the number of class A type products
FN = M-TN;?// where number M is the number of class B type products
混淆矩陣
混淆矩陣中橫軸通常表示真實類別(1和0分別對應真、偽),縱軸表示預測類別(1和0分別對應陽、陰),對真實類別和真實類別進行組合,便組成混淆矩陣:

更詳細混淆矩陣圖如下

混淆矩陣里概念比較相似,相同指標有不同術語,為了讓大家更好立即回血矩陣,我附上混淆矩陣英文圖譜,如下圖:



準確率Accuracy
準確性衡量測試對 TPR 和 TNR 的預測效果。按照混淆矩陣中的符號形式,準確率的公式可以表示為:

準確率是一種非常常見的模型效能度量指標,然而當面對樣本不平衡問題時,其度量效果會產(chǎn)生問題。比如在一個總樣本中,1類樣本占90%,0類樣本占10%,樣本嚴重不平衡,此時我們只需要將全部樣本預測為1即可得到高達90%的準確率。
精準率Precision
精準率(Precision)又稱查準率,代表所有被預測為1的樣本中實際為1的概率,其公式如下:

召回率Recall
召回率(Recall)又稱查全率,代表在所有實際為1的樣本中被預測為1的概率,其公式如下:

F1分數(shù)
通常情況下,查準率和查全率會隨著閾值的變化而變化,我們希望查準率和查全率同時都非常高,然而這兩個指標實際是此消彼長的關系,無法做到雙高。對此,我們就需要一個新的指標 —— F1分數(shù)。F1分數(shù)同時考慮了查準率和查全率,通過選取最高的F1來確定分類閾值,F(xiàn)1公式如下:

roc/AUC 相關指標介紹
為了了解roc/AUC,我們需要了解幾個指標。靈敏度sensitivity和召回率recall是同一個指標,不同場景術語叫法不一樣。
靈敏度
靈敏度衡量正確識別的陽性比例

特異度specificity
特異度衡量被正確識別的陰性比例

真陽率 (TPR)
真陽率和召回率一樣,代表在所有實際為1的樣本中被預測為1的概率,其公式如下:

假陽率 (FPR)
假陽率代表在所有實際為0的樣本中被預測為1的概率,其公式如下:

?
指標間關系
用條件概率理解混合矩陣容易得多
sensitivity:真陽性條件下,測試也是陽性
specificity:真陰性條件下,測試也是陰性
FALSE positive:真陰性條件下,測試卻是陽性
FALSE negative:真陽性條件下,測試卻是陰性
只要全部認定為陽性,敏感度就是百分之百,但說明調(diào)高敏感度同時,假陽性概率也會隨之提高
當全部認定為陽性,陰性數(shù)量為0,specificity=0, ?假陽性1-specificity=1,假陽性也是最高。
敏感性和假陽性率呈現(xiàn)正比例
敏感性和準確性(陽性預測率)呈現(xiàn)反比例
roc和PRC曲線說明:敏感性(召回率)不是越高越好,敏感性太高,假陽性率也會上升(會損失掉一些好客戶)。
敏感性太高,陽性預測率(準確率)會下降。
各指標計算舉例

roc的Excel計算邏輯
roc可以用Excel來計算,具體計算邏輯舉例如下圖:


roc 曲線的python代碼
在 Python 中計算 roc 曲線scikit-learn 使計算 roc 曲線變得非常容易。但首先要做的是:要制作 roc 曲線,我們首先需要一個分類模型進行評估。對于這個例子,我將制作一個合成數(shù)據(jù)集,然后使用 scikit-learn 構建一個邏輯回歸模型。
好的,現(xiàn)在我們有了我們的模型,我們可以計算 roc 曲線了。?非常簡單——從 scikit-learn 導入 roc_curve,傳入我們測試集中的實際 y 值以及這些相同記錄的預測概率。結果將產(chǎn)生您的 FPR 和 TPR。?將它們傳遞給 ggplot 和 BAM!?你有一個漂亮的 roc 曲線。
最后計算AUC:
我們得到 0.900?;仡欀埃珹UC 在 0 和 1 之間有界,所以這很不錯。
roc 曲線的R代碼
在 R 中計算 roc 曲線在 R 中制作 roc 曲線也很容易。?我強烈推薦使用 rocR 包。?它為您完成了所有艱苦的工作,并制作了一些非常漂亮的圖表。對于模型,我們將構建一個分類器,該分類器使用邏輯回歸模型來預測鉆石數(shù)據(jù)集中的記錄是否超過 2400 美元。
總結,今天2021年7月24日終于總結完roc,AUC,混淆矩陣等概念。為了讓大家更好理解這些概念,我圖文并茂,整合了大量資料。但是這些概念確實比較容易混淆,希望大家下來各個擊破,勤加練習,不能死記硬背這些指標。贈送大家一句話practice makes it perfect!?歡迎各位同學學習我錄制的<python金融風控評分卡模型和數(shù)據(jù)分析微專業(yè)課>,課程不斷更新,與時俱進。

版權聲明:文章來自公眾號(python風控模型),未經(jīng)許可,不得抄襲。遵循CC 4.0 BY-SA版權協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。