Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ROC曲线单独绘制,不进入绘图网格,R中的plot_grid()函数不工作

ROC曲线单独绘制,不进入绘图网格,R中的plot_grid()函数不工作
EN

Stack Overflow用户
提问于 2021-11-28 10:30:36
回答 1查看 150关注 0票数 1

我只是试着在Rstudio的一个绘图网格中绘制ROC曲线,神经网络模型都是工作的,但是ROC曲线不会在一个网格布局中进行,它们是单独绘制的,但不止是这样,减价文件大约有20页长。我已经将所有模型简化为两个虚拟神经元--数据使其快速运行,只有setwd()和读取的数据行需要进行调整。

下面是空的地块网格:

但在这里,你可以看到他们的工作,并将分别策划:

代码语言:javascript
运行
AI代码解释
复制
library(Rcpp)
library(RSNNS)
library(ggplot2)
library(plotROC)
library(tidyr)
library(cowplot)

setwd("**set working directory or copy paste sample**")
data <- read.csv("WDBC.csv", header=T)
cancerdata <- data[,2:11] #numeric data
cancerdata <- scale(cancerdata)  # normalizes the cancerdata

numHneurons2 = 2
numHneurons3 = 3
numHneurons10 = 10
numHneurons20 = 20
numHneurons50 = 50

DecTargets = decodeClassLabels(data[,12]) #non-numeric decision data
head(DecTargets) #decoding based on Diagnosis, M or B for malignant or benign

train.test3 <- splitForTrainingAndTest(cancerdata, DecTargets,ratio = 0.50) # split
train.test10 <- splitForTrainingAndTest(cancerdata, DecTargets,ratio = 0.50) # split
train.test20 <- splitForTrainingAndTest(cancerdata, DecTargets,ratio = 0.50) # split
train.test50 <- splitForTrainingAndTest(cancerdata, DecTargets,ratio = 0.50) # split

model3_02 <- mlp(train.test3$inputsTrain, train.test3$targetsTrain,  # build model3
                 size = numHneurons2, learnFuncParams = c(0.02),maxit = 10000, 
                 inputsTest = train.test3$inputsTest, 
                 targetsTest = train.test3$targetsTest)

model10_02 <- mlp(train.test10$inputsTrain, train.test10$targetsTrain, # build model10
                  size = numHneurons2, learnFuncParams = c(0.02),maxit = 10000, 
                  inputsTest = train.test10$inputsTest, 
                  targetsTest = train.test10$targetsTest)

model20_02 <- mlp(train.test20$inputsTrain, train.test20$targetsTrain, # build model20
                  size = numHneurons2, learnFuncParams = c(0.02),maxit = 10000, 
                  inputsTest = train.test20$inputsTest, 
                  targetsTest = train.test20$targetsTest)

model50_02 <- mlp(train.test50$inputsTrain, train.test50$targetsTrain, # build model50
                  size = numHneurons2, learnFuncParams = c(0.02),maxit = 10000, 
                  inputsTest = train.test50$inputsTest, 
                  targetsTest = train.test50$targetsTest)

#--------------------------------------
#            ROC curves:
#--------------------------------------
roc3_02 <- plotROC(fitted.values(model3_02), train.test3$targetsTrain)
roc10_02 <- plotROC(fitted.values(model10_02), train.test10$targetsTrain) 
roc20_02 <- plotROC(fitted.values(model20_02), train.test10$targetsTrain) 
roc50_02 <- plotROC(fitted.values(model50_02), train.test10$targetsTrain) 

plotsROC02 <- plot_grid(roc3_02, roc10_02, roc20_02, roc50_02, labels = c("N3", "N10", "N20", "N50"), label_size = 16)
title <- ggplot() + 
  labs(title = "ANN Models with 0.02 Learning Rate",
       subtitle = "Models with 3, 10, 20, and 50 Neurons") +
  theme_minimal()
plot_grid(title, plotsROC02, ncol = 1, rel_heights = c(0.1, 0.9))

以下是癌症数据的样本:

代码语言:javascript
运行
AI代码解释
复制
     PatientID radius texture perimeter   area smoothness compactness concavity concavePoints symmetry fractalDimension Diagnosis
1     842302 17.990   10.38    122.80 1001.0    0.11840     0.27760   0.30010       0.14710   0.2419          0.07871         M
2     842517 20.570   17.77    132.90 1326.0    0.08474     0.07864   0.08690       0.07017   0.1812          0.05667         M
3   84300903 19.690   21.25    130.00 1203.0    0.10960     0.15990   0.19740       0.12790   0.2069          0.05999         M
4   84348301 11.420   20.38     77.58  386.1    0.14250     0.28390   0.24140       0.10520   0.2597          0.09744         M
5   84358402 20.290   14.34    135.10 1297.0    0.10030     0.13280   0.19800       0.10430   0.1809          0.05883         M
6     843786 12.450   15.70     82.57  477.1    0.12780     0.17000   0.15780       0.08089   0.2087          0.07613         M
7     844359 18.250   19.98    119.60 1040.0    0.09463     0.10900   0.11270       0.07400   0.1794          0.05742         M
8   84458202 13.710   20.83     90.20  577.9    0.11890     0.16450   0.09366       0.05985   0.2196          0.07451         M
9     844981 13.000   21.82     87.50  519.8    0.12730     0.19320   0.18590       0.09353   0.2350          0.07389         M
10  84501001 12.460   24.04     83.97  475.9    0.11860     0.23960   0.22730       0.08543   0.2030          0.08243         M
11    845636 16.020   23.24    102.70  797.8    0.08206     0.06669   0.03299       0.03323   0.1528          0.05697         M
12  84610002 15.780   17.89    103.60  781.0    0.09710     0.12920   0.09954       0.06606   0.1842          0.06082         M
13    846226 19.170   24.80    132.40 1123.0    0.09740     0.24580   0.20650       0.11180   0.2397          0.07800         M
14    846381 15.850   23.95    103.70  782.7    0.08401     0.10020   0.09938       0.05364   0.1847          0.05338         M
15  84667401 13.730   22.61     93.60  578.3    0.11310     0.22930   0.21280       0.08025   0.2069          0.07682         M
16  84799002 14.540   27.54     96.73  658.8    0.11390     0.15950   0.16390       0.07364   0.2303          0.07077         M
17    848406 14.680   20.13     94.74  684.5    0.09867     0.07200   0.07395       0.05259   0.1586          0.05922         M
18  84862001 16.130   20.68    108.10  798.8    0.11700     0.20220   0.17220       0.10280   0.2164          0.07356         M
19    849014 19.810   22.15    130.00 1260.0    0.09831     0.10270   0.14790       0.09498   0.1582          0.05395         M
20   8510426 13.540   14.36     87.46  566.3    0.09779     0.08129   0.06664       0.04781   0.1885          0.05766         B
21   8510653 13.080   15.71     85.63  520.0    0.10750     0.12700   0.04568       0.03110   0.1967          0.06811         B
22   8510824  9.504   12.44     60.34  273.9    0.10240     0.06492   0.02956       0.02076   0.1815          0.06905         B
23   8511133 15.340   14.26    102.50  704.4    0.10730     0.21350   0.20770       0.09756   0.2521          0.07032         M
24    851509 21.160   23.04    137.20 1404.0    0.09428     0.10220   0.10970       0.08632   0.1769          0.05278         M
25    852552 16.650   21.38    110.00  904.6    0.11210     0.14570   0.15250       0.09170   0.1995          0.06330         M
26    852631 17.140   16.40    116.00  912.7    0.11860     0.22760   0.22290       0.14010   0.3040          0.07413         M
27    852763 14.580   21.53     97.41  644.8    0.10540     0.18680   0.14250       0.08783   0.2252          0.06924         M
28    852781 18.610   20.25    122.10 1094.0    0.09440     0.10660   0.14900       0.07731   0.1697          0.05699         M
29    852973 15.300   25.27    102.40  732.4    0.10820     0.16970   0.16830       0.08751   0.1926          0.06540         M
30    853201 17.570   15.05    115.00  955.1    0.09847     0.11570   0.09875       0.07953   0.1739          0.06149         M
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-05 02:23:03

我将根据pROC包(我创建了一个维护包)给出一个答案。

首先,我创建了一个ROC曲线列表:

代码语言:javascript
运行
AI代码解释
复制
library(pROC)
roc3_02 <- roc(as.vector(train.test3$targetsTrain), as.vector(fitted.values(model3_02)))
roc10_02 <- roc(as.vector(train.test3$targetsTrain), as.vector(fitted.values(model10_02)))
roc20_02 <- roc(as.vector(train.test3$targetsTrain), as.vector(fitted.values(model20_02)))
roc50_02 <- roc(as.vector(train.test3$targetsTrain), as.vector(fitted.values(model50_02)))

roc_list <- list(
    roc3_02=roc3_02,
    roc10_02=roc10_02,
    roc20_02=roc20_02,
    roc50_02=roc50_02)

然后,我可以结合使用pROC的ggroc函数和facet_wrap

代码语言:javascript
运行
AI代码解释
复制
 library(ggplot)
 g.group <- ggroc(roc_list, aes="group")
 g.group
 g.group + facet_wrap(.~name)

然后,您可以像任何ggplot2绘图一样自定义绘图。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70146315

复制
相关文章
46.高级图表类型与应用
树形图 多应用于数据量大、分类层级多的图表 桑葚图 应用于数据复杂的图表 热力图 特殊时间数据 关系图 例如微博大V关注 箱线图 标靶图 词云图 地理图
hankleo
2020/09/16
4070
46.高级图表类型与应用
怎样插入图表?用图表功能可以插入不同的图表。
1、点击[插入] 2、点击[图表] 3、点击[折线图] 4、点击[确定]
裴来凡
2022/05/28
1.6K0
怎样插入图表?用图表功能可以插入不同的图表。
高级可视化 | Banber图表联动交互
实现筛选联动,首先要从数据中摘出我们所需要的图表数据,如何摘出所需要的图表数据,就需要设置条件参数,按条件参数筛选数据,而筛选组件用来控制筛选的切换展现,最终生成所需要的图表。
Banber可视化云平台
2021/05/27
2K0
Excel图表学习45: 裁剪图表
这是在chandoo.org学到的技巧。如下图1所示,在使用柱形图制作图表时,如果有些柱形表示的数字很大,可以截断该柱形,使图表看起来更美观。
fanjy
2019/07/19
2.6K0
Excel小技巧65:在单元格区域中精确放置图表
在Excel中绘制嵌入的图表时,Excel会将图表放置在合适的地方,如下图1所示。
fanjy
2020/11/06
2.3K0
Excel图表技巧07:创建滑动显示的图表
下图1是我在chandoo.org上看到的一个图表技巧。很有趣的图表显示方式,你能想到吗?
fanjy
2021/01/20
1.5K0
Excel图表技巧07:创建滑动显示的图表
图表搬家
来这里找志同道合的小伙伴! 今天给大家聊一聊Excel图表的输出! 我们日常所做的图表,如果不是专门用做Excel报表的话,大部分还是要以图片的形式导出。 通常导出到PPT的情况比较多,主要用于课堂演示、商务汇报、年终总结、产品发布会等场合! 可能大家会觉得小魔方小题大做,不就是把图表从Excel转移到PPT中嘛,我也会呀。qq截图(CTRL+ALT+A)保存然后导入PPT就OK了;或者,更简单粗暴一点的,直接将图表复制黏贴(CTRL+C/CTRL+V)到PPT里也可以哦!!! 确实没错,这样的确可以满
数据小磨坊
2018/04/10
2.3K0
图表搬家
Excel图表技巧12:为图表精确配色
有时候,我们想要在自己的图表中使用与参照图表完全一样的颜色,但参照图表是以图片形式保存的,这就需要我们得到其准确的RGB值。然而,Excel的主要功能集中于数据处理,其检测对象颜色的能力有所欠缺。此时,PowerPoint就派上用场了,它非常擅长计算对象的确切颜色,因为它有一种称为“取色器”的功能。
fanjy
2021/07/12
2.8K0
Excel图表技巧12:为图表精确配色
Excel最强图表插件EasyShu: 类别型图表
历时365天,【Excel催化剂】与【EasyShu】联手升级的Excel图表插件EasyCharts 2.0版本-EasyShu,即将面世。接下来我们会陆陆续续介绍插件的各种功能,同时内测,等内测结束就发布。我们先从与表格完美融合的类别型图表开始讲解。
数据小磨坊
2020/03/30
2.9K0
Excel最强图表插件EasyShu: 类别型图表
Excel图表技巧10:快速调整图表数据
Excel应该可以说是“智能化”的前辈,有很多的操作都可以自动“记住”,下次同样的操作就可以直接应用,非常便捷,这也是Excel强大的地方之一。我们今天介绍的技巧是通过鼠标可以快速调整图表数据,而图表自身也会作出相应的调整。
fanjy
2021/07/12
2.8K0
Excel图表技巧10:快速调整图表数据
IBCS全套图表模板无条件赠送,给图表爱好者的送上的图表盛宴
在开发EasyShu之前,Excel催化剂插件里也有数据可视化功能,并且是完全免费的。
Excel催化剂
2022/03/31
9340
IBCS全套图表模板无条件赠送,给图表爱好者的送上的图表盛宴
Excel图表技巧03:另类组合图表
通常,我们指的组合图表是在一个图表中放置不同类型的图表,例如常见的柱形图/折线图组合,如下图1所示,是由一个柱形系列和一个折线系列组成的。
fanjy
2021/01/06
1.3K0
高级可视化 | Banber图表弹窗联动交互
在利用数据简报/大屏进行图表演示时,操作者有可能要与图表进行交互联动。上一期(Banber图表联动交互)我们讲解了,如何设置下图所示,通过单击左边条形图区域,就可以交互联动右侧图表,查看事业部下属的部门具体销售情况。
Banber可视化云平台
2021/07/06
1.6K0
高级可视化 | Banber图表弹窗联动交互
图表案例——简约却不简单的图表制作技巧
我们通常看到的小而美的图表,一般都是经过图表制作者深层次加工过的成品。 而要想了解一个规范的商务图表制作过程,对图表的拆解与还原就显得非常重要。 今天的案例是关于三家电子消费业巨头:三星、苹果、华为的
数据小磨坊
2018/04/11
1.3K0
图表案例——简约却不简单的图表制作技巧
用一行Python代码创建高级财务图表
今天带大家一起学习一个小众,但很厉害的可视化库mplfinance,一起掌握最灵活的python库来创建漂亮的金融可视化。
数据STUDIO
2021/12/15
1.4K0
用一行Python代码创建高级财务图表
Excel图表技巧02:绘制动态图表
当图表数据区域中的单元格数据增加或减少时,图表会自动相应变化,这就是我们所说的动态图表。本文介绍Excel中两种基本的制作动态图表的方法。
fanjy
2021/01/06
1.4K0
用一行Python代码创建高级财务图表
今天带大家一起学习一个小众,但很厉害的可视化库mplfinance,一起掌握最灵活的python库来创建漂亮的金融可视化。
程序员小二
2021/12/25
1.3K0
用一行Python代码创建高级财务图表
Excel图表技巧14:创建专业图表——基础
引言:本文整理自exceluser.com,讲解在Excel中如何创建华尔街日报的专业图表。
fanjy
2021/07/30
3.7K0
Excel图表技巧05:自由选择想要查看的图表
有时候,我们想通过选择来控制想要显示的图表。例如下图1所示,在单元格下拉列表中选取某项后,显示对应的图表。
fanjy
2021/01/20
1.5K0
Excel图表技巧05:自由选择想要查看的图表
图表3 散点图
var data = [{ "gender": "female", "height": 161.2, "weight": 51.6 }, { "gender": "female", "height": 167.5, "weight": 59 }, { "gender": "female", "height": 159.5, "weight": 49.2 }, { "gender": "female", "height": 157, "weight": 63 }, { "gender": "female", "height": 155.8, "weight": 53.6 }, { "gender": "female", "height": 170, "weight": 59 }, { "gender": "female", "height": 159.1, "weight": 47.6 }, { "gender": "female", "height": 166, "weight": 69.8 }, { "gender": "female", "height": 176.2, "weight": 66.8 }, { "gender": "female", "height": 160.2, "weight": 75.2 }, { "gender": "female", "height": 172.5, "weight": 55.2 }, { "gender": "female", "height": 170.9, "weight": 54.2 }, { "gender": "female", "height": 172.9, "weight": 62.5 }, { "gender": "female", "height": 153.4, "weight": 42 }, { "gender": "female", "height": 160, "weight": 50 }, { "gender": "female", "height": 147.2, "weight": 49.8 },...此处省略...]
Qwe7
2022/06/15
1.1K0

相似问题

绘制曲线ROC em R

11

R中glm的ROC曲线绘制

18

用pROC R绘制ROC曲线

19

用R编写函数用pROC绘制ROC曲线

11

绘制多个ROC曲线的平均ROC曲线

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档