欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用R語言繪制ROC曲線的實(shí)例講解

 更新時(shí)間:2021年04月06日 10:25:33   作者:coding-day  
這篇文章主要介紹了用R語言繪制ROC曲線的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

1 roc曲線的意義

ROC曲線就是用來判斷診斷的正確性,最理想的就是曲線下的面積為1,比較理想的狀態(tài)就是曲線下的面積在0.8-0.9之間,0.5的話對實(shí)驗(yàn)結(jié)果沒有什么影響。

如圖:

2代碼部分

install.packages(“pROC”)
install.packages(“ggplot2”)
library(pROC)
library(ggplot2)
#建立曲線
data(aSAH)
rocobj1<-roc(aSAHo u t c o m e , a S A H outcome,aSAHoutcome,aSAHs100b)
rocobj2<-roc(aSAHo u t c o m e , a S A H outcome,aSAHoutcome,aSAHwfns)
rocobj3<-roc(aSAHo u t c o m e , a S A H outcome,aSAHoutcome,aSAHndka)
#計(jì)算full AUC
auc(rocobj1)
auc(rocobj2)
auc(rocobj3)
#繪制曲線
plot(rocobj1)
#其他參數(shù)美化
plot(rocobj1,print.auc=TRUE,auc.polygon=TRUE,grid=c(0.1,0.2),grid.col=c(“green”,“red”),max.auc.polygon=TRUE,auc.polygon.col=“skyblue”,print.thres=TRUE)
#計(jì)算partial AUC選擇關(guān)注一定范圍數(shù)據(jù)
plot(rocobj1,print.auc=TRUE,auc.polygon=TRUE,partial.auc=c(0.8,0.4),partial.auc.focus=“sp”,grid=c(0.1,0.2),grid.col=c(“green”,“red”),max.auc.polygon=TRUE,auc.polygon.col=“skyblue”,print.thres=TRUE,reuse.auc=FALSE)
#比較兩個(gè)曲線,pROC提供三種方法比較“delong”, “bootstrap”或“venkatraman”
roc.test(rocobj1,rocobj2,method = “bootstrap”)
#ggroc(功能仍在測試中)繪制Multiple curves
g3<-ggroc(list(s100b=rocobj,wfns=rocobj2,ndka=rocobj3))
g3
install.packages(“pROC”)
library(“pROC”)##roc
data(aSAH)
roc1<-roc(myDatal a b e l , m y D a t a label,myDatalabel,myDatascore)
roc2<-roc(myData2l a b e l , m y D a t a 2 label,myData2label,myData2score)
polt(roc1,col=“blue”)
polt.roc(roc2,add=TRUE,col=“red”)

3 實(shí)驗(yàn)結(jié)果

補(bǔ)充:R語言proc包繪制多重ROC曲線(信用評分應(yīng)用,已有l(wèi)abel和相應(yīng)score)

數(shù)據(jù):好壞標(biāo)簽label、用四種model簡單計(jì)算出的每一個(gè)樣本的score,標(biāo)記為pre1至pre4,約1w樣本

目的:使用proc包繪制ROC曲線,并生成AUC值

1.讀入數(shù)據(jù)

data<-read.csv(file="D:/個(gè)人消費(fèi)信用/第三次上機(jī)/工作簿2.csv",header=T)

header=T 即在讀取中,將原有數(shù)據(jù)的第一行設(shè)置為變量名。

注意文件的分隔為 “ / ”,與默認(rèn)不同。

2.畫出最基本的ROC曲線

library(pROC) #加載pROC包
roc1<-roc(data$label,data$pre1)
plot(roc1,print.auc=TRUE,plot=TRUE,
print.thres=TRUE)

包含AUC的值和最優(yōu)臨界點(diǎn),下面把它美化一下~

(問題:為啥橫坐標(biāo)Specificity的范圍是1.5到-0.5,查了一下沒有找到原因,可能是因?yàn)樵瓟?shù)據(jù)本身的問題,以前以違約概率而非score的時(shí)候沒有出現(xiàn)這個(gè)問題,擇日探究……TvT)

3.美化ROC曲線

plot(roc2,print.auc=TRUE,print.auc.x=0.4,print.auc.y=0.4,auc.polygon=TRUE,auc.polygon.col="gray",
smooth=TRUE,
grid=c(0.5, 0.2),
grid.col=c("black", "black"), 
max.auc.polygon=TRUE,
print.thres=TRUE,print.thres.cex=0.8,
lty=1,main=" ROC曲線",mfrow=c(1,1)) 

解釋在括號(hào)里面疊加命令的代碼:

print.auc.x=0.4,print.auc.y=0.4 #設(shè)置AUC值顯示出來的坐標(biāo)
auc.polygon=TRUE,auc.polygon.col="gray" #設(shè)置ROC曲線下填充色,此處設(shè)定為灰色
smooth=TRUE #使ROC曲線變得光滑
max.auc.polygon=TRUE #整個(gè)圖像填充
print.thres.cex=0.8 #設(shè)置最優(yōu)臨界點(diǎn)字體的大小
lty=1,main=" ROC曲線",mfrow=c(1,1) #設(shè)置標(biāo)題啥的 mfrow貌似是圖形參數(shù),待查……

4.合并ROC曲線

由于共有4個(gè)model,所以要想比較模型的優(yōu)劣,可以將四個(gè)ROC曲線畫到一起。

roc1<- roc(data$label,data$pre1)
roc2<- roc(data$label,data$pre2)
roc3<- roc(data$label,data$pre3)
roc4<- roc(data$label,data$pre4)
plot(roc1, print.auc=TRUE,print.auc.x=0.4,print.auc.y=0.4, auc.polygon=TRUE,auc.polygon.col="gray", grid=c(0.5, 0.2),smooth=T,grid.col=c("black", "black"), max.auc.polygon=TRUE)
plot.roc(roc2,add=T,col="red", print.auc=TRUE,print.auc.x=0.3,print.auc.y=0.3)
plot.roc(roc3,add=T,col="blue",print.auc=TRUE,print.auc.x=0.5,print.auc.y=0.5)
plot.roc(roc4,add=T,col="yellow",print.auc=TRUE,print.auc.x=0.6,print.auc.y=0.6)

由于此處要顯示AUC值,且不要重合~所以在后面加上了print.auc=TRUE,print.auc.x=0.6,print.auc.y=0.6的命令。

如果不重合的話,直接在roc1下面加上下列代碼即可:

plot.roc(roc2,add=T,col="red")

由于原有數(shù)據(jù)的問題,這里的四條ROC曲線幾乎重合~但此處只是介紹pROC包繪制ROC曲線的用法。就不要太在意遼!

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • R語言-有負(fù)下標(biāo)里才能有零介紹

    R語言-有負(fù)下標(biāo)里才能有零介紹

    這篇文章主要介紹了R語言-有負(fù)下標(biāo)里才能有零的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言多元線性回歸實(shí)例詳解

    R語言多元線性回歸實(shí)例詳解

    對比一元線性回歸,多元線性回歸是用來確定2個(gè)或2個(gè)以上變量間關(guān)系的統(tǒng)計(jì)分析方法,下面這篇文章主要給大家介紹了關(guān)于R語言多元線性回歸的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • R語言因子型數(shù)值轉(zhuǎn)數(shù)值型的操作

    R語言因子型數(shù)值轉(zhuǎn)數(shù)值型的操作

    這篇文章主要介紹了R語言因子型數(shù)值轉(zhuǎn)數(shù)值型的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言在散點(diǎn)圖中添加lm線性回歸公式的問題

    R語言在散點(diǎn)圖中添加lm線性回歸公式的問題

    這篇文章主要介紹了R語言在散點(diǎn)圖中添加lm線性回歸公式的問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • R語言實(shí)現(xiàn)支持向量機(jī)SVM應(yīng)用案例

    R語言實(shí)現(xiàn)支持向量機(jī)SVM應(yīng)用案例

    本文主要介紹了R語言實(shí)現(xiàn)支持向量機(jī)SVM應(yīng)用案例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • R語言編程學(xué)習(xí)從Github上安裝包解決網(wǎng)絡(luò)問題

    R語言編程學(xué)習(xí)從Github上安裝包解決網(wǎng)絡(luò)問題

    這篇文章主要為大家介紹了R語言編程從Github上安裝包的過程詳解,這樣可以解決很多網(wǎng)絡(luò)問題,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • R語言修改下載安裝包install.package的默認(rèn)存儲(chǔ)路徑的操作方法

    R語言修改下載安裝包install.package的默認(rèn)存儲(chǔ)路徑的操作方法

    這篇文章主要介紹了R語言修改下載安裝包install.package的默認(rèn)存儲(chǔ)路徑的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • R語言基本語法深入講解

    R語言基本語法深入講解

    這篇文章主要介紹了R語言基本語法深入講解,文中內(nèi)容介紹的很詳細(xì),有需要的同學(xué)可以研究下
    2021-03-03
  • R語言中R-squared與Adjust R-squared參數(shù)的解釋

    R語言中R-squared與Adjust R-squared參數(shù)的解釋

    這篇文章主要給大家介紹了關(guān)于R語言中R-squared與Adjust R-squared兩個(gè)參數(shù)的相關(guān)資料,文中介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • R語言繪圖-點(diǎn)圖dot plot

    R語言繪圖-點(diǎn)圖dot plot

    這篇文章主要介紹了R語言繪圖-點(diǎn)圖dot plot案例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論