用ROC曲線解析預測模型

2020-12-04 CDA數據分析師

出品 | CDA數據分析研究院

數據科學是一個在過去幾年裡真正成長的術語,似乎每個人都想加入。最具吸引力的目標之一是利用數據資產的力量來創建能夠預測各種結果的機器學習模型。通過定義明確的模型,可以確定能夠預測結果的最重要影響因素,為戰略假設開發有價值的洞察力,甚至可以通過友好的用戶界面將模型的邏輯實現到軟體應用程式中。

然而,在任何這種魔法發生之前,我們需要知道模型創建的預測是否有益!例如,如果我們的電子郵件程序的垃圾郵件分類器只能檢測到50%的不需要的電子郵件或請求,我們都會非常憤怒。在這篇文章中,我將討論如何使用每個數據科學家應該熟悉的經典工具來評估預測模型:接收器操作特性(ROC)曲線。

說明性實例:預測冠狀動脈疾病

我在這篇文章中使用的數據集來自Bom等人對「疑似冠狀動脈疾病患者冠狀動脈斑塊形態的靶向蛋白質組學的預測價值」。

這項研究檢查了兩種不同的結果,我將重點關注這篇文章的是沒有冠狀動脈疾病(CAD)。作者評估了蛋白質組學生物標誌物在有症狀患者中檢測CAD缺失的預測能力。確定一組可以區分無CAD患者和需要立即幹預的蛋白質的蛋白質組將提供更準確和成本有效的非侵入性診斷測試。

該數據集是測試多個數據科學主題的絕佳來源。通過少量觀察,它很容易使用,但它還包含大量變量以增加複雜性。結果(使用冠狀動脈計算機斷層掃描血管造影術,或CCTA)的可行「黃金標準」被提供來測試預測。對於這篇文章,我將主要關注從單一模型構建ROC曲線,但可以在後面的帖子中使用此數據集深入研究更高級的主題。

預測精度測量概述

在開始創建曲線之前,了解一些評估預測準確性的常用指標非常重要。

積極類:我將正類定義為我試圖檢測的結果類。在這種情況下,缺少 CAD。雖然我意識到這可能會導致診斷測試領域中的「積極」和「消極」這兩個術語混淆,但這種方式定義積極類更能推廣到其他情況。

在這種情況下處理有症狀患者的默認方法是讓他們接受進一步的測試和程序。通過充分檢測沒有CAD的患者,我們將不再需要不必要的,更具侵入性的手術。

一般準確性:簡單地說,有多少科目正確分類?

敏感性:正確識別真陽性的比例。在這種情況下,健康患者的比例由診斷工具正確識別。這有時被稱為「召回」。

SN =真陽性/(真陽性+假陰性)逆(1靈敏度)= 假負率。未被該工具檢測到的健康患者被錯誤地識別為患有CAD。假陰性也稱為II型錯誤。特異性:正確識別真陰性的比例。在這種情況下,通過診斷工具正確識別CAD患者的比例。

SP =真陰性/(真陰性+誤報)逆(1-特異性)= 假陽性率。CAD患者被錯誤地識別為無CAD。誤報也稱為I型錯誤。積極預測價值:該工具報告的陽性比例,實際上是積極的。對於診斷工具報告缺乏CAD的患者組,PPV是實際上沒有患病的患者的比例。這有時被稱為「精確度」。

PPV =真陽性/(真陽性+誤報)負面預測值:該工具報告的負面影響的比例,實際上是負面的。對於診斷工具報告存在CAD的患者組,NPV是實際上沒有CAD的患者的比例。

NPV =真陰性/(真陰性+假陰性)不要擔心,如果你的大腦試圖理清所有這些指標。這些術語很容易混淆,特別是在第一次學習它們時。我發現在2x2表中可視化內容最容易。

二進位類的混淆矩陣(正=沒有CAD,負= CAD)

曲線的解剖

ROC曲線的優點在於它是一種易於理解的圖形工具,可應用於您創建的任何預測模型。以下是曲線的基礎知識:

軸:靈敏度和誤報率

首先,我們需要為情節創造空間。通過將靈敏度與1-特異性(或假陽性率)作圖來建立ROC曲線。

預測概率

現在我們需要繪製一些東西。回想一下,預測模型會將每個觀察分配給最可能的類(在這種情況下,沒有CAD與CAD的存在)。模型實際上在做的是計算屬於特定類的概率。在0和1之間選擇截止值,並且如果計算的概率超過該閾值,則將觀察值分配給該類。

您可能會發現在大多數軟體包中,默認截止值設置為0.5,邏輯是,在二進位類中,可以將觀察值分配給最可能的類。但是,正如我們所看到的,最好在考慮靈敏度和特異性之間的權衡之後選擇截止值。

通過繪製所有可能的截止值來生成ROC曲線,所述截止值是分配給每個觀察的概率。選擇不同的截止值將改變預測工具的靈敏度和特異性,因此,可以使用相關的靈敏度和1-特異性作為坐標在圖的空間中繪製每個截止概率。最靠近左上角的點(SN = 1,FPR = 0)提供精度度量之間的最大平衡。

曲線下面積(AUC)

AUC是一個類似於二元模型的一致性或c統計量的度量。這是具有正類的觀察將具有比在負類中的觀察更大的預測概率的概率。

如果AUC = 1,則表示模型有完美的預測。如果AUC = 0.5,則意味著模型無法區分類。它在邏輯回歸中的行為與r平方相似,因為添加更多預測因子會增加AUC。因此,在分析中包括對外部數據的交叉驗證或驗證非常重要。

AUC可用於評估不同的預測模型。

參考線

繪製參考線通常是個好主意,其中AOC = 0.5在ROC圖上。這提供了比較曲線的基線視覺效果。

生成ROC曲線

雖然可以使用幾個不同的程序來開發預測模型和ROC曲線,但我已經在R中實現了分析。

為了預測結果,我使用xgboost創建了一個分類模型,其中蛋白質生物標記物作為預測因子,並使用重新取代方法來預測數據集中的結果。使用預測的概率,我可以形成上面顯示的ROC曲線。

注意:該程序也設置為使用k-fold交叉驗證,或者可以更新以利用外部驗證,例如列車和測試集的70/30分割(儘管我想要更多數據)。

解釋曲線

AUC為0.738,實際上低於作者用他們的機器學習方法所發現的(堆疊可能提高了分類器的準確性)。但是,我更關心的是選擇合適的截止值並權衡工具的成本和收益。

模型的總體準確性是不錯的,但是當發生假陽性結果時,會發生CAD患者而不是通過必要的程序?讓我們同意這不會是一件好事。

為了安全起見,儘可能減少診斷工具的誤報率可能是個好主意。在生成混淆矩陣時,很容易選擇保持低誤報率的概率截止值。這將作為誰被標記為無CAD的決定標準。

通過選擇保持90%特異性(10%假陽性率)的概率截止值,分類工具能夠檢測到42%沒有CAD的患者(敏感性= 0.42)。在這種情況下,這實際上是一個非常好的結果,因為現狀是讓所有有症狀的患者接受更具侵入性的診斷程序。儘管42%的靈敏度可能聽起來很低,但在這種特定情況下,這是一個很有希望的結果。

在開發用於預測有症狀患者的CAD狀態的分類器時,最重要的是在保持低誤報率的同時實現儘可能高的靈敏度。

ROC曲線的優點在於您可以從單個圖像中可視化所有這些性能指標。將曲線與競爭模型進行比較是一種快速簡便的方法,可以選擇合適的分類或診斷工具。

我只研究了使用ROC曲線和二進位分類工具,但它可以很容易地擴展到多類方案。在同一圖形上,可以繪製與每個特定類別中的概率相對應的多條曲線。

在撰寫本文時,我詳細介紹了如何構建ROC曲線,目的是增加對預測精度度量的理解,以及如何評估您可能正在構建的這些數據科學分類工具。

相關焦點

  • Time-dependent ROC 曲線
    BioNews,專注於報導生命科學領域相關新聞,長按下方二維碼即可關注"BioNews"(id : iBioNews)概念通常我們對於biomarker的預測模型會用ROC曲線來評價其性能,但是對於一些生存資料數據的預測模型或者需要加入時間因素,則會使用時間依賴(time dependent)的ROC曲線傳統的ROC曲線分析方法認為個體的事件(疾病)狀態和markers是隨著時間的推移而固定的,但在臨床流行病學研究中,疾病狀態和markers都是隨著時間的推移而變化的(即time-to-event outcomes)。
  • 機器學習中的AUC-ROC曲線
    AUC-ROC曲線你已經建立了你的機器學習模型-那麼接下來呢?你需要對它進行評估,並驗證它有多好(或有多壞),這樣你就可以決定是否實現它。這時就可以引入AUC-ROC曲線了。但在此之前,我們先來了解一下為什麼預測概率比直接預測目標類要好。預測概率機器學習分類模型可以直接預測數據點的實際類別或預測其屬於不同類別的概率。後者使我們對結果有更多的控制權。我們可以確定自己的閾值來解釋分類器的結果。這更為謹慎!為數據點設置不同的分類閾值會無意中改變模型的敏感性和特異性。
  • 數據挖掘之模型評估(均方誤差、精確率、召回率及ROC曲線的含義)
    我們都知道,數據挖掘最終的目的就是建立業務模型,然後投入到實際中做一些分類或者預測的事情,但是這個模型做的好不好,我們總要評價吧?這就需要我們對建立的模型做評估,然後根據評估指標和實際的業務情況決定是否要發布這個模型,那麼常用的模型評估指標有哪些呢?他們之間的聯繫又是什麼呢?
  • 單變量和多變量對基因表達式的預測能力對比
    在下一節中,我們將把數據集分割成訓練和測試子集,然後在訓練集上實現單變量和多變量特徵選擇(訓練)模型,並使用平衡假陽性(FPR)和真陽性(TPR)率的roc曲線技術對測試集上的模型進行評估。性別預測:LASSO與單變量方法為了評估單變量和多變量模型的預測能力,我們需要對獨立的數據集進行訓練和評估。
  • 一文讀懂AUC-ROC
    英文原文:https://towardsdatascience.com/understanding-auc-roc-curve-68b2303cc9c5在機器學習中,性能測量是一項重要任務。當涉及到分類問題時,我們依靠AUC  -  ROC曲線來做性能評測。當我們需要檢查或可視化多類分類問題的性能時,我們使用AUC(曲線下面積)和ROC(接收器操作特性)曲線。
  • 萬字長文總結機器學習的模型評估與調參|附代碼下載
    此外,我們還想將原始的30維度特徵壓縮至更少維度,這就需要用到主成分分析,要用PCA來完成,再接著就可以進行logistic回歸預測了。Pipeline對象接收元組構成的列表作為輸入,每個元組第一個值作為變量名,元組第二個元素是sklearn中的transformer或Estimator。管道中間每一步由sklearn中的transformer構成,最後一步是一個Estimator。
  • 通過三個直觀步驟理解ROC曲線
    ROC曲線是一個分類模型效果好壞評判的的可視化表示。在這篇文章中,我將分三個步驟頭開始構建ROC曲線。步驟1:獲取分類模型預測當我們訓練一個分類模型時,我們得到得到一個結果的概率。在這種情況下,我們的例子將是償還貸款的可能性。概率通常在0到1之間。價值越高,這個人就越有可能償還貸款。
  • 如何用SPSS繪製ROC曲線
    ROC曲線相信大家都不太陌生,多多少少都聽說過。ROC曲線在臨床上的主要功能就是幫助大家尋找一個比較可靠的指標去診斷某種疾病。今天我們就來給大家演示一下具體的操作。     案例:(本案例的數據結果尚未發表論文,就以字母代替了)。
  • 多個時間點的ROC曲線還可以這樣畫!
    之前介紹了用ggplot2來定製多個時間點的ROC曲線那個圖可能更好看,容易和ggplot2系列的圖一起組合。這個圖在模型構建裡面經常出現,模型構建必須有預測的終點,即生存事件,假如團隊能夠有一批擁有生存時間,而且臨床資料都齊全的患者數據,那麼可以做的事情就很多了。
  • 聯合診斷ROC分析及曲線下面積的比較
    欲解決的統計問題:擬分別用testa、testb和兩者聯合診斷疾病狀態,並對三者的診斷價值進行兩兩比較。1、複製數據Excel中,選擇變量名和數據,複製。此時數據框中多了一列LOGREGR_Pred1,即testa和testb通過logistic產生的預測概率值,綜合反應testa和testb的診斷能力,我們可以用LOGREGR_Pred1繪製ROC曲線並計算曲線下面積。
  • ROC曲線應該怎麼看?
    Roc曲線,也稱「受試者工作特徵曲線」,或者感受性曲線,拋開這寫難記的名字不談,今天主要來談談它的用法以及如何解讀。應用場景ROC曲線主要是用於X對Y的預測準確率情況。根據曲線位置,把整個圖劃分成了兩部分,曲線下方部分的面積被稱為AUC(Area Under Curve),用來表示預測準確性,AUC值越高,也就是曲線下方面積越大,說明預測準確率越高。曲線越接近左上角(X越小,Y越大),預測準確率越高。
  • 收益率曲線三因子模型的一個直觀定義
    模型比較(1)因子解釋度(2)模型複雜度(3)因子相關性及經濟學含義(4)水平因子解釋度(四)收益率曲線三因子的影響因素四、收益率曲線預測(一)收益率回歸預測:SVR(二)收益率分類預測:SVC五、結論●一、引言●在任一時點,同一信用等級、不同期限債券的收益率連成的一條曲線稱為收益率曲線
  • ROC曲線的繪製與解讀
    www.graphpad-prism.cn受試者工作特徵曲線(receiver operating characteristic curve,簡稱ROC曲線),又稱為感受性曲線(sensitivity curve)。得此名的原因在於曲線上各點反映著相同的感受性,它們都是對同一信號刺激的反應,只不過是在幾種不同的判定標準下所得的結果而已。
  • roc指標如何解讀 散戶們要注意以下幾點
    這裡小編我就給大家介紹一下roc指標的相關內容,看看roc指標如何解讀?提醒散戶們要注意以下幾點分析方法。roc指標如何解讀 ROC指標,又稱變動率指標,以交du易日當天的收盤價與其N天前的收盤價的差除以N天前的收盤價
  • 一文帶你徹底理解ROC曲線和AUC值
    二分類模型預測的結果是否足夠好,ROC和AUC是重要指標。1.案例計算假如說我們編寫了一個算法M,它能夠根據一系列的屬性(比如身高、愛好、衣著、飲食習慣等)來預測一個人的性別是男還是女。然後我們有10個人屬性組數據讓算法M來預測,這10個人的真實性別和預測結果如下:預測值中0代表女性,1代表男性,數字越大越接近男性特徵,數字越小越接近女性特徵。
  • 教你用BERT進行多標籤文本分類
    該模型還在兩個無監督任務(「遮蔽語言模型」和「下一句預測」)上進行了預訓練。這讓我們可以通過對下遊特定任務(例如情緒分類,意圖檢測,問答等)進行微調來使用預先訓練的BERT模型。本文將手把手教你,用BERT完成一個Kaggle競賽。在本文中,我們將重點介紹BERT在多標籤文本分類問題中的應用。
  • roc變動率如何看 該指標的計算公式如何?
    炒股的人都知道,股市中的一些技術分析指標是要了解的,不同的指標有不同的含義,ROC也是技術分析最常見的參考指標之一了,那麼roc變動率如何看呢?還有該指標的計算公式如何?我們一起來看看!
  • 教你用R畫列線圖(Nomogram),讓預測模型結果可視化!
    還沒來得及閱讀的小夥伴請點擊查看:    同樣是構建多因素回歸模型,往往我們另一個主要目的是為了對結局事件的發生風險進行預測,那麼是否也可以將預測模型的結果,像森林圖那樣可視化地展示出來呢?今天小咖就來帶大家認識一下神奇的列線圖。