用R语言绘制ROC曲线

用R语言绘制ROC曲线1roc曲线的意义ROC曲线就是用来判断诊断的正确性,最理想的就是曲线下的面积为1,比较理想的状态就是曲线下的面积在0.8-0.9之间,0.5的话对实验结果没有什么影响。如图:2代码部分install.packages(“pROC”)install.packages(“ggplot2”)library(pROC)library(ggplot2)#建立曲线data(aSAH)…

大家好,又见面了,我是你们的朋友全栈君。

1、roc曲线的意义
ROC曲线就是用来判断诊断的正确性,最理想的就是曲线下的面积为1,比较理想的状态就是曲线下的面积在0.8-0.9之间,0.5的话对实验结果没有什么影响。
如图:
在这里插入图片描述
2、代码部分

install.packages("pROC")
install.packages("ggplot2")

library(pROC)
library(ggplot2)
#建立曲线
data(aSAH)
rocobj1<-roc(aSAH$outcome,aSAH$s100b)
rocobj2<-roc(aSAH$outcome,aSAH$wfns)
rocobj3<-roc(aSAH$outcome,aSAH$ndka)
#计算full AUC
auc(rocobj1)
auc(rocobj2)
auc(rocobj3)

#绘制曲线
plot(rocobj1)

#其他参数美化
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)

#计算partial  AUC选择关注一定范围数据

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)

#比较两个曲线,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(myData$label,myData$score)
roc2<-roc(myData2$label,myData2$score)
polt(roc1,col="blue")
polt.roc(roc2,add=TRUE,col="red")

3、实验结果
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145334.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月17日 下午5:00
下一篇 2022年5月17日 下午5:00


相关推荐

  • hashMap,hashTable,hashSet,TreeMap的区别

    hashMap,hashTable,hashSet,TreeMap的区别

    2022年3月1日
    60
  • JS截取字符串函数详解

    JS截取字符串函数详解一 函数 split 功能 使用一个指定的分隔符把一个字符串分割存储到数组例子 str jpg bmp gif ico png arr theString split arr 是一个包含字符值 jpg bmp gif ico 和 png 的数组 nbsp 二 函数 John 功能 使用您选择的分隔符将一个数组合并为一个字符串例子 var

    2026年3月19日
    2
  • Faster-rcnn详解「建议收藏」

    Faster-rcnn详解「建议收藏」论文题目:FasterR-CNN:TowardsReal-TimeObjectDetectionwithRegionProposalNetworks论文链接:论文链接论文代码:Matlab版本点击此处,Python版本点击此处作为一个目标检测领域的baseline算法,Faster-rcnn值得你去仔细理解里面的细节,如果你能深入的了解这些,我相信你会受益匪浅。…

    2022年10月4日
    7
  • python字符串转换成数字_python如何将字符转换为数字

    python字符串转换成数字_python如何将字符转换为数字python 中的字符数字之间的转换函数 int x base 将 x 转换为一个整数 long x base 将 x 转换为一个长整数 float x 将 x 转换到一个浮点数 complex real imag 创建一个复数 str x 将对象 x 转换为字符串 repr x

    2026年3月19日
    2
  • git 重置用户名 密码信息

    gitclone时,权限不够。如fatal:unabletoaccess:TherequestedURLreturnederror:403可能原因是,你之前在本电脑使用过git.但是以前和现在又不是同一个账户。所以当你现在使用gitcloneurl时,默认使用以前的账户信息。所以出现没有权限的状况。解决方法:重置本机保留的gitconfig信息。…

    2022年4月8日
    244
  • 寄存器寻址方式

    寄存器寻址方式br 寄存器和寻址方式 br nbsp nbsp nbsp 寄存器 在 8086 8088 里 有三组共 13 个 16 位寄存器 br nbsp nbsp nbsp 寄存器 从名字上看 可以知道 它就象书店的行包寄存处 寄存器的名字就象寄存处发给用户取回自已物件的标志牌子 表示物件的存放地址 br nbsp nbsp nbsp 寄存器的内部给构都相同 只不过是一个二字节或一字节的存储空间 别看他们小 作用可大了 所有电脑的运算 都要从他们过关 因为他们的处理速度快嘛 为了区分和准确运用 就要给他们进行科学的分组和起名 br nbsp nbsp nbsp 第一组 数据寄存器

    2026年3月18日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号