最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

視頻|分類模型評估:精確率、召回率、ROC曲線、AUC與R語言生存分析時間依賴性ROC實現(xiàn)|

2023-09-18 22:12 作者:拓端tecdat  | 我要投稿

全文鏈接:http://tecdat.cn/?p=20650?

原文出處:拓端數(shù)據(jù)部落公眾號

?

視頻|分類模型評估:精確率、召回率、ROC曲線、AUC與R語言生存分析時間依賴性ROC實現(xiàn)

分類模型評估精確率、召回率、ROC曲線、AUC與R語言生存分析時間依賴性ROC實現(xiàn)

本文將幫助您回答以下問題:

  1. ROC曲線是什么?

  2. 曲線下的面積是多少?

  3. 二元分類的決策閾值是多少?

  4. 分類模型可接受的 AUC值是多少?

  5. 什么是精確召回曲線?

  6. 什么時候應該使用精確召回和 ROC 曲線?

什么是ROC曲線?

如果你用搜索 ROC 曲線,你會得到以下答案:

*“?*接受者操作特征曲線或 ROC 曲線是一個圖形,它說明了二元分類器系統(tǒng)在其區(qū)分閾值變化時的診斷能力。”

這個定義不容易理解,對初學者來說可能聽起來很嚇人。

本文旨在幫助您以一種簡單的語言理解 ROC 曲線,以便您可以在 ROC 曲線背后建立一些基本思想。

在我們進入 ROC 曲線之前,我們需要記住混淆矩陣是什么。

混淆矩陣

混淆矩陣幫助我們可視化模型在區(qū)分兩個類別時是否“錯誤”。它是一個 2x2 矩陣。行名是測試集中的實際值,列名是模型預測的。

Positive或Negative是 ML 模型預測標簽的名稱。每當預測錯誤時,第一個詞是False,當預測正確時,第一個詞是True。

ROC曲線基于從混淆矩陣得出的兩個指標:真正例率 (?TPR?) 和假正例率 (?FPR?)。TPR與召回率相同。它是正確預測的正樣本除以數(shù)據(jù)集中可用的所有實際正樣本的比率。

TPR 側重于實際的正類:

真正例率公式

反過來,F(xiàn)PR 是假正例預測與真負樣本總數(shù)的比率。

FPR公式

ROC 曲線是基于 TPR 和 FPR 繪制的。

ROC曲線示例

通過使用 TPR 和 FPR,ROC 曲線顯示了您的分類模型在所有分類閾值下的性能。

但是分類決策閾值是多少?

首先,你的分類 ML 模型輸出是一個概率。例如,您構建一個分類器來根據(jù)給定人的體重預測性別(女性或男性)。假設正類是女性(1),負類是男性(0)。然后,您將 150 公斤的重量樣本傳遞給您的 ML 模型,該模型預測的概率為 0.23。

默認情況下,您的分類閾值為 0.5。任何高于 0.5 的概率將被歸類為 1 類(正),低于 0.5 的概率將被歸為 0 類(負)。給定 0.23 的概率,體重 150 公斤的人將被歸類為負類(男性)。

簡而言之,您使用此閾值作為截止值,將預測結果分類為正類或負類。這是一個后處理步驟,將預測概率作為二進制類別返回。通過更改閾值,您的 TP、TN、FP 和 FN 將發(fā)生變化,因此您可以根據(jù)要改進的指標對其進行優(yōu)化。

因此,ROC 反過來會告訴您您的 ML 模型能夠在多大程度上區(qū)分不同閾值的兩個類別。

您使用稱為AUC曲線下面積來測量 ROC。您使用 AUC 來評估算法的質量,以便在兩個類別之間進行檢測。

A?rea?U?under?the?Curve:?AUC?

讓我們通過圖形示例來回顧 ROC。

假設我們正在建立一個模型來預測:申請人是償還貸款還是壞帳。

在下圖中,藍線是正類預測概率的分布,表示申請者拒付(未能償還),紅線是負類預測概率分布,表示申請者將償還。

在以下情況下,AUC 為 0.70。這意味著該模型能夠正確區(qū)分正類和負類之間的 70%。

AUC=0.7

顯然,我們離理想的情況還很遠。曲線將重疊,這意味著我們的 ML 模型會犯錯誤,我們將其視為誤報。

理想分類器示例

上述案例說明了當我們的 ML 模型正確預測兩個類時的理想情況。分布之間沒有重疊。該模型可以完美區(qū)分正類和負類,是一個理想的分類器。

可能存在 AUC 為 0.5 的情況。這意味著我們的 ML 模型無法區(qū)分正類和負類。它實際上是一個隨機分類器。

AUC = 0.5

有時 AUC 為 0。這意味著模型反向預測類別。該模型認為負類是正類,反之亦然。

AUC = 0

總而言之,合理的 AUC 超過 0.5(隨機分類器),而好的分類模型的 AUC > 0.9。然而,這個值高度依賴于它的應用。

R語言中生存分析模型與時間依賴性ROC曲線可視化

視頻:R語言生存分析原理與晚期肺癌患者分析案例

R語言生存分析Survival analysis原理與晚期肺癌患者分析案例

人們通常使用接收者操作特征曲線(ROC)進行二元結果邏輯回歸。但是,流行病學研究中感興趣的結果通常是事件發(fā)生時間。使用隨時間變化的時間依賴性ROC可以更全面地描述這種情況下的預測模型。

時間依賴性ROC定義

令 Mi為用于死亡率預測的基線(時間0)標量標記。?當隨時間推移觀察到結果時,其預測性能取決于評估時間?t。直觀地說,在零時間測量的標記值應該變得不那么相關。因此,ROC測得的預測性能(區(qū)分)是時間t的函數(shù)?。?

累積病例

累積病例/動態(tài)ROC定義了在時間t?處的閾值c處的?靈敏度和特異性,??如下所示。

累積靈敏度將在時間t之前死亡的視為分母(疾病),而將標記值高于?c?的作為真實陽性(疾病陽性)。動態(tài)特異性將在時間t仍然活著作為分母(健康),并將標記值小于或等于?c?的那些作為真實陰性(健康中的陰性)。將閾值?c?從最小值更改為最大值會在時間t處顯示整個ROC曲線?。

新發(fā)病例

新發(fā)病例ROC1在時間t?處以閾值?c定義靈敏度和特異性,??如下所示。

累積靈敏度將在時間t處死亡的人??視為分母(疾?。?,而將標記值高于???的人視為真實陽性(疾病陽性)。

數(shù)據(jù)準備

我們以數(shù)據(jù)?包中的dataset3survival為例。事件發(fā)生的時間就是死亡的時間。Kaplan-Meier圖如下。

## 變成data_framedata <- as_data_frame(data)## 繪圖plot(survfit(Surv(futime, fustat) ~ 1, ? ? ? ? ? ? ? ? ? data = data)

可視化結果:

在數(shù)據(jù)集中超過720天沒有發(fā)生任何事件。

## 擬合cox模型coxph(formula = Surv(futime, fustat) ~ pspline(age, df = 4) + ##獲得線性預測值 predict(coxph1, type = "lp")

累積病例

實現(xiàn)了累積病例

## 定義一個輔助函數(shù),以在不同的時間進行評估ROC_hlp <- function(t) { ? ?survivalROC(Stime ? ? ? ? ? ? ? ? ? ? ? ?status ? ? ? ? ? ? ? ? ? ? ? ?marker ? ? ? ? ? ? ? ? ? ? ? ?predict.time = t, ? ? ? ? ? ? ? ?method ? ? ? = "NNE", ? ? ? ? ? ? ? ?span = 0.25 * nrow(ovarian)^(-0.20))}## 每180天評估一次ROC_data <- data_frame(t = 180 * c(1,2,3,4,5,6)) %>% ? ?mutate(survivalROC = map(t, survivalROC_helper), ? ? ? ? ? ## 提取AUC ? ? ? ? ? auc = map_dbl(survivalROC, magrittr::extract2, "AUC"), ? ? ? ? ? ## 在data_frame中放相關的值 ? ? ? ? ? df_survivalROC = map(survivalROC, function(obj) { ? ? ? ? ? ## 繪圖 ggplot(mapping = aes(x = FP, y = TP)) + ? ?geom_point() + ? ?geom_line() + ? ? ?facet_wrap( ~ t) +

可視化結果:

180天的ROC看起來是最好的。因為到此刻為止幾乎沒有事件。在最后觀察到的事件(t≥720)之后,AUC穩(wěn)定在0.856。這種表現(xiàn)并沒有衰退,因為高風險分數(shù)的人死了。

新發(fā)病例

實現(xiàn)新發(fā)病例

## 定義一個輔助函數(shù),以在不同的時間進行評估 ## 每180天評估一次 ? ? ? ? ? ?## 提取AUC ? ? ? ? ? auc = map_dbl(risksetROC, magrittr::extract2, "AUC"), ? ? ? ? ? ## 在data_frame中放相關的值 ? ? ? ? ? df_risksetROC = map(risksetROC, function(obj) { ? ? ? ? ? ? ? ## 標記欄 ? ? ? ? ? ? ? marker <- c(-Inf, obj[["marker"]], Inf) ## 繪圖 ? ?ggplot(mapping = aes(x = FP, y = TP)) + ? ?geom_point() + ? ?geom_line() + ? ?geom_label(data = risksetROC_data %>% dplyr::select(t,auc) %>% unique, ? ?facet_wrap( ~ t) +

可視化結果:

這種差異在后期更為明顯。最值得注意的是,只有在每個時間點處于風險集中的個體才能提供數(shù)據(jù)。所以數(shù)據(jù)點少了。表現(xiàn)的衰退更為明顯,也許是因為在那些存活時間足夠長的人中,時間零點的風險分沒有那么重要。一旦沒有事件,ROC基本上就會趨于平緩。

結論

總之,我們研究了時間依賴的ROC及其R實現(xiàn)。累積病例ROC可能與風險?(累積發(fā)生率)預測模型的概念更兼容?。新發(fā)病例ROC可用于檢查時間零標記在預測后續(xù)事件時的相關性。

參考

  1. Heagerty,Patrick J. and Zheng,Yingye,??Survival Model Predictive Accuracy and ROC Curves,Biometrics,61(1),92-105(2005).?doi:10.1111 / j.0006-341X.2005.030814.x.

最受歡迎的見解

1.R語言繪制生存曲線估計|生存分析|如何R作生存曲線圖

2.R語言生存分析可視化分析

3.R語言如何在生存分析與Cox回歸中計算IDI,NRI指標

4.r語言中使用Bioconductor 分析芯片數(shù)據(jù)

5.R語言生存分析數(shù)據(jù)分析可視化案例

6.r語言ggplot2誤差棒圖快速指南

7.R 語言繪制功能富集泡泡圖

8.R語言如何找到患者數(shù)據(jù)中具有差異的指標?(PLS—DA分析)

9.R語言中的生存分析Survival analysis晚期肺癌患者4例


視頻|分類模型評估:精確率、召回率、ROC曲線、AUC與R語言生存分析時間依賴性ROC實現(xiàn)|的評論 (共 條)

分享到微博請遵守國家法律
定结县| 策勒县| 阿图什市| 平潭县| 南平市| 婺源县| 金坛市| 安图县| 九台市| 邮箱| 昌都县| 平陆县| 祁连县| 项城市| 庆云县| 东乌珠穆沁旗| 普格县| 禹州市| 永济市| 宁化县| 佛学| 从化市| 扎鲁特旗| 绵竹市| 达拉特旗| 洞头县| 靖边县| 泰顺县| 宾川县| 溧阳市| 弋阳县| 弥勒县| 鄂尔多斯市| 常德市| 观塘区| 桦南县| 花垣县| 合水县| 武清区| 丹东市| 龙海市|