Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将3个模型指标与ggplot2进行比较_R_Ggplot2_Cross Validation - Fatal编程技术网

R 将3个模型指标与ggplot2进行比较

R 将3个模型指标与ggplot2进行比较,r,ggplot2,cross-validation,R,Ggplot2,Cross Validation,当从3个训练模型到一个测试集指标绘制3个模型指标(RMSE、MAE、Rsquared)时,我试图证明神经网络模型是最好的 列车和测试指标之间的距离最小 它还具有足够低的RSME/MAE和较高的RSQUARE 现在,从所附的图上看,这并不明显。此外,由于Rsquared在[0,1]区间内,度量的尺度不同。有没有办法把它画得更好,最好是在同一个图上 可复制代码: trn最简单的方法是+facet\u wrap(~metric,scales=“free”),但我认为这不能满足“在一个图中”的要求(

当从3个训练模型到一个测试集指标绘制3个模型指标(RMSE、MAE、Rsquared)时,我试图证明神经网络模型是最好的

  • 列车和测试指标之间的距离最小
  • 它还具有足够低的RSME/MAE和较高的RSQUARE
现在,从所附的图上看,这并不明显。此外,由于Rsquared在[0,1]区间内,度量的尺度不同。有没有办法把它画得更好,最好是在同一个图上

可复制代码:


trn最简单的方法是
+facet\u wrap(~metric,scales=“free”)
,但我认为这不能满足“在一个图中”的要求(它在一个图语句中,但在三个子图中)。如果
gg1
是您的原始绘图,那么这是一种非常压缩的格式:

打印(gg1)
+镶嵌面包裹(~公制,scale=“free\u y”,ncol=1)
+主题_bw()
+主题(面板间距=网格::单位(0,“线”),
strip.background=element\u blank(),strip.text.x=element\u blank()
)
任何比这更压缩的内容都需要您做出一些关于丢弃哪些信息的决定(例如,您是否愿意将所有度量重新缩放为最小值=0、最大值=1,或者差异的大小是否传达了信息


保持条形标签不变可能会使图形更容易阅读(用户不必眯着眼睛看图例来确定哪个指标是哪个指标);您也可以尝试。

太好了,我刚刚添加了
axis.title=element\u blank()
。应该提到它将进入
rmarkdown
文档,它在那里看起来很好,我刚刚测试了它的工作原理,如果您想同时清空x轴和y轴标签(比设置主题稍微干净),您可以使用
+labs(x=”“,y=”“)
> trn
            model RMSE Rsquared  MAE dataType
1      Linear Reg 9.17     0.51 6.03    train
2      SVM Radial 7.86     0.64 4.86    train
3 Neural Networks 8.55     0.57 5.59    train
> tst
            model RMSE Rsquared  MAE dataType
1      Linear Reg 9.40     0.53 5.95     test
2      SVM Radial 9.16     0.55 5.50     test
3 Neural Networks 8.66     0.60 5.48     test
> 
trn <- structure(list(model = c("Linear Reg", "SVM Radial", "Neural Networks"),
                      RMSE = c(9.17, 7.86, 8.55), Rsquared = c(0.51, 0.64, 0.57),
                      MAE = c(6.03, 4.86, 5.59)),
                 row.names = c(NA, -3L), class = "data.frame")

tst <- structure(list(model = c("Linear Reg", "SVM Radial", "Neural Networks"),
                      RMSE = c(9.4, 9.16, 8.66), Rsquared = c(0.53, 0.55, 0.6),
                      MAE = c(5.95, 5.5, 5.48)),
                 row.names = c(NA, -3L), class = "data.frame")

trn['dataType'] = 'train'
tst['dataType'] = 'test'

long_tbl <- rbind(trn, tst) %>%
  pivot_longer(cols =!c('model', 'dataType'), names_to = 'metric', values_to='value')

ggplot(long_tbl, aes(x=model, y=value, shape = dataType, colour = metric )) + 
  geom_point()