ROC曲線 VS PR曲線

python機器學習-乳腺癌細胞挖掘(博主親自錄製視頻)https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share

https://www.plob.org/article/12476.html(原文連接)html

 初識ROC曲線python

1. ROC的前世此生ios

ROC的全稱是「受試者工做特徵」(Receiver Operating Characteristic)曲線,首先是由二戰中的電子工程師和雷達工程師發明的,用來偵測戰場上的敵軍載具(飛機、船艦),也就是信號檢測理論。以後很快就被引入了心理學來進行信號的知覺檢測。此後被引入機器學習領域,用來評判分類、檢測結果的好壞。所以,ROC曲線是很是重要和常見的統計分析方法。微信

2. 「ROC 曲線」思路:機器學習

根據學習器的預測結果對樣例進行排序,按此順序逐個把樣本做爲正例進行預測,每次計算出兩個重要量的值(TPR、FPR),分別以它們爲橫、縱座標做圖。ide

3. AUC (Area under Curve):學習

ROC曲線下的面積,介於0.1和1之間,做爲數值能夠直觀的評價分類器的好壞,值越大越好。測試

4. 「混淆矩陣」:spa

對於二分類問題,可將樣本根據其真實類別與學習器預測類別的組合劃分爲TP(true positive)、FP(false positive)、TN(true negative)、FN(false negative)四種狀況,TP+FP+TN+FN=樣本總數。視頻

http://zhwhong.ml/2017/04/14/ROC-AUC-Precision-Recall-analysis/

(1) 真陽性(True Positive,TP):檢測不健康,且實際不健康;正確確定的匹配數目;

(2) 假陽性(False Positive,FP):檢測不健康,但實際健康;誤報,給出的匹配是不正確的;

(3) 真陰性(True Negative,TN):檢測健康,且實際健康;正確拒絕的非匹配數目;

(4) 假陰性(False Negative,FN):檢測健康,但實際不健康;漏報,沒有正確找到的匹配的數目。

 深刻了解ROC曲線

ROC曲線實際上是多個混淆矩陣的結果組合。

以疾病檢測爲例,這是一個有監督的二分類模型,模型對每一個樣本的預測結果爲一個機率值,咱們須要從中選取一個閾值來判斷健康與否。

定好一個閾值以後,超過此閾值定義爲不健康,低於此閾值定義爲健康,就能夠得出混淆矩陣。

而若是在上述模型中咱們沒有定好閾值,而是將模型預測結果從高到低排序,將每次機率值依次做爲閾值,那麼就能夠獲得多個混淆矩陣。對於每一個混淆矩陣,咱們計算兩個指標TPR和FPR,以FPR爲x軸,TPR爲y軸畫圖,就獲得了ROC曲線。

通常來講,若是ROC是光滑的,那麼基本能夠判斷沒有太大的overfitting,AUC面積越大通常認爲模型越好。

 AUC值做爲評價標準

1. AUC (Area Under Curve)

被定義爲ROC曲線下的面積,取值範圍通常在0.5和1之間。使用AUC值做爲評價標準是由於不少時候ROC曲線並不能清晰的說明哪一個分類器的效果更好,而做爲一個數值,對應AUC更大的分類器效果更好。

2.AUC 的計算方法

非參數法:(兩種方法實際證實是一致的)

(1)梯形法則:早期因爲測試樣本有限,咱們獲得的AUC曲線呈階梯狀。曲線上的每一個點向X軸作垂線,獲得若干梯形,這些梯形面積之和也就是AUC 。

(2)Mann-Whitney統計量: 統計正負樣本對中,有多少個組中的正樣本的機率大於負樣本的機率。這種估計隨着樣本規模的擴大而逐漸逼近真實值。

參數法:

(3)主要適用於二項分佈的數據,即正反樣本分佈符合正態分佈,能夠經過均值和方差來計算。

3.從AUC判斷分類器(預測模型)優劣的標準

· AUC = 1,是完美分類器,採用這個預測模型時,存在至少一個閾值能得出完美預測。絕大多數預測的場合,不存在完美分類器。

· 0.5 < AUC < 1,優於隨機猜想。這個分類器(模型)妥善設定閾值的話,能有預測價值。

· AUC = 0.5,跟隨機猜想同樣(例:丟銅板),模型沒有預測價值。

· AUC < 0.5,比隨機猜想還差;但只要老是反預測而行,就優於隨機猜想。

三種AUC值示例:

總結:AUC值越大的分類器,正確率越高

4. 不一樣模型AUC的比較

總的來講,AUC值越大,模型的分類效果越好,疾病檢測越準確;不過兩個模型AUC值相等並不表明模型效果相同,例子以下:

下圖中有三條ROC曲線,A模型比B和C都要好

下面兩幅圖中兩條ROC曲線相交於一點,AUC值幾乎同樣:當須要高Sensitivity時,模型A比B好;當須要高Speciticity時,模型B比A好;

 最優零界點咋麼找

說人話,就是保證TPR高的同時FPR要儘可能的小,創建max(TPR+(1-FPR))的模型。一樣有三種方法:找到離(0,1)最近的點、Youden index和最小損耗(cost criterion)

1. 若是說Sn 和Sp 分別對應於sensitivity和specificity,全部ROC曲線上的點到ROC的距離能夠表示爲,讓d最小就好啦;

2. Youden index : 最大化ROC曲線上的點到x軸的垂直距離(最大化TPR(Sn)和FPR(1-Sp)的差別);

3. 考慮人力物力和財力(第三種方法不多用,由於很難評估)

ROC的好基友——PR曲線

1.介紹

PR曲線和ROC曲線相似,ROC曲線是FPR和TPR的點連成的線,PR曲線是準確率和召回率的點連成的線,以下圖所示。

咱們又知道,Recall=TPR,所以PRC的橫座標爲ROC的縱座標。

2. ROC曲線與PR曲線的取捨

相對來說ROC曲線會穩定不少,在正負樣本量都足夠的狀況下,ROC曲線足夠反映模型的判斷能力。所以,對於同一模型,PRC和ROC曲線均可以說明必定的問題,並且兩者有必定的相關性,若是想評測模型效果,也能夠把兩條曲線都畫出來綜合評價。對於有監督的二分類問題,在正負樣本都足夠的狀況下,能夠直接用ROC曲線、AUC、KS評價模型效果。在肯定閾值過程當中,能夠根據Precision、Recall或者F1來評價模型的分類效果。對於多分類問題,能夠對每一類分別計算Precision、Recall和F1,綜合做爲模型評價指標。

在上圖中,(a)和(c)爲ROC曲線,(b)和(d)爲Precision-Recall曲線。(a)和(b)展現的是分類其在原始測試集(正負樣本分佈平衡)的結果,(c)和(d)是將測試集中負樣本的數量增長到原來的10倍後,分類器的結果。能夠明顯的看出,ROC曲線基本保持原貌,而Precision-Recall曲線則變化較大。

參考資料

https://en.wikipedia.org/wiki/Receiver_operating_characteristic

https://www.zhihu.com/question/30643044

http://www.it610.com/article/4964856.htm

http://zhwhong.ml/2017/04/14/ROC-AUC-Precision-Recall-analysis/

http://www.medicalbiostatistics.com/

 

python信用評分卡建模(附代碼,博主錄製)

 

 微信掃二維碼,免費學習更多python資源

相關文章
相關標籤/搜索