ROC曲線基於R語言 (pROC包)

2021-10-02 08:55:49 字數 2947 閱讀 3848

很多的模型在進行分類**時,會產生乙個實際值或者概率值,然後我們將這個**值與乙個用於分類的閾值進行比較,將結果分成正類和反類。一般我們可以通過任務需求的不同來採用不同的截斷點。在繪製roc曲線前,我們根據學習期的**結果對樣例進行排序,按照該順序計算出橫縱座標,縱軸是「真正例率」(trp),橫軸是「假正例率」(fpr),影象與x=1,y=0的直線圍成的面積為auc值。

呼叫「proc包」中的roc()函式:

library

("proc"

)data

(asah)

在asah資料集中s100b是對outcome的**實值

>

head

(asah)

gos6 outcome gender age wfns s100b ndka

295 good female 42

10.13

3.01

305 good female 37

10.14

8.54

315 good female 42

10.10

8.09

325 good female 27

10.04

10.42

331 poor female 42

30.13

17.40

341 poor male 48

20.10

12.75

使用roc函式的格式大致如下,ci=t代表計算95%的置信區間,auc=t則會返回auc值

roc

(asah$outcome

, asah$s100b

, smooth=

true

,ci=t,auc = t)

返回的結果如下:

>

roc(asah$outcome

, asah$s100b

, smooth=

true

,ci=t,auc = t)

setting levels: control = good,

case

= poor

setting direction: controls < cases

call:

roc.

default

(response = asah$outcome

, predictor = asah$s100b

, smooth =

true

, auc = t, ci = t)

data: asah$s100b in 72 controls (asah$outcome good)

<

41 cases (asah$outcome poor)

.smoothing: binormal

area under the curve:

0.7495%

ci:0.6396

-0.8344

(2000 stratified bootstrap replicates)

若想將roc的曲線繪製出來,則可以將結果賦給乙個變數,直接plot即可。

在「proc」中,plot.roc函式可以為roc曲線上的每乙個點新增其對應的置信區間並繪製出來:

在「proc」包中,ggroc()函式可以通過ggplot2來繪製roc曲線:

R語言 ROC曲線

setwd e rwork library rocr data rocr.pred rocr.predictions為 標籤,rocr.labels為真實標籤 做乙個logistic回歸,生成概率 值 pre 將 概率prob和實際結果y放在乙個資料框中 data 按 概率從低到高排序 0.9 1....

用R軟體包ROCR畫ROC曲線

roc曲線可以簡單 直觀得觀察分析方法的臨床準確性,並可用肉眼作出判斷。roc以真陽性率 靈敏度fpr 為縱座標,假陽性率 1 特異度tpr 為橫座標繪製的曲線,可準確反映某分析方法特異性和敏感性的關係,是試驗準確性的綜合代表。roc曲線不固定分類界值,允許中間狀態存在,利於使用者結合專業知識,權衡...

基於python實現ROC曲線繪製廣場解析

roc 結果源資料 鳶尾花資料集 僅採用其中的兩種類別的花進行訓練和檢測 summary features sepal length cm sepal width cm petal length cm petal width cm 例項 5.1,3.5,1.4,0.2 target setosa v...