复现 sci 顶刊中的 3D 密度函数图

简介: 最近在看一些关于贝叶斯深度学习在可靠性方向应用的文章,看到下面这篇文章,发表在可靠性方向顶刊的 ITR 中。

简介


最近在看一些关于贝叶斯深度学习在可靠性方向应用的文章,看到下面这篇文章,发表在可靠性方向顶刊的 ITR 中。

2GHM__D_PSJ`DDXALCE_MUE.png


ITR 期刊,可靠性领域顶刊


本文主要介绍:使用贝叶斯深度学习来预测产品剩余使用寿命,但是传统的深度学习方法只能得到未来时间点的估计值,并不能包含不确定性因素,而使用贝叶斯深度学习,最后可以得到未来时间点预测值的分布。

文中在模拟阶段给出了一个用 matlab 得到的 3D 密度函数图。

GR4K3Z8@D38GH09HKP@19G9.png


原文图形


主要目的:解释使用该方法预测出未来时间点对应剩余使用寿命(RUL)的分布,对应的点估计和真实值。可以看出,该方法点估计和真实值非常接近,并且还给出对应点的核密度函数。根据这个核密度函数你可以求出  的预测区间。

好像内容介绍太多了,本文不是文献解读😁。主要是复现这个图,那正式开始吧!


教程


对于这种 3D 的图形,ggplot2 包以及对应的拓展包好像不是很在行,但是也有一些教程可见:3D Plots with ggplot2 and Plotly[1]。这里我们主要使用 plot3D[2] 包中的 scatter3D 函数进行绘制,当然也可以尝试使用 Scatterplot3d[3] 包。

首先构造一些模拟数据作为例子。这里我们假设每个时间点的密度函数服从正态分布,均值分别为 1:5,标准差都为 1。颜色是自己比较喜欢的几种配色,参考小明的推文:R语言ggplot2画图一套好看的配色以及调整字体的简单小例子

mean1 = 1:5 # 刻画不同时间对应密度函数的均值
len = 1000
col = c("#02B1e6", "#E81D22", "#F9BC15", "#8015f9", "#20e81d", "#e64602")
x <- seq(-5,10, length = len)
y <- seq(1,5, length = 5)
z = matrix(NA,length(x),5)
for(i in 1:length(mean1)){
  z[,i] = dnorm(x,mean1[i],1)
}


之后使用 scatter3D 函数构建一个空的三维箱子(alpha=0)。这个函数前三个参数分别对应 x,y,z 坐标,bty(boxtype)表示箱子的类型,这里使用类似文献中的形式,之后我们将展示其他形式。phi,theta 主要是对上下角度和左右角度进行调整,ticktype = "detailed"将坐标轴详细展现出来。

如果你对其他参数感兴趣,可以参见这篇教程:Impressive package for 3D and 4D graph - R software and data visualization[4]

scatter3D(x, rep(1,len), z[,1], bty = "b2",colkey = FALSE,
          phi = 14,theta = 45,
          pch = 18,alpha = 0,ticktype = "detailed", expand =0.5,
          ylim = c(1,5),zlim = c(0,0.5),
          xlab = "RUL(10s)", ylab = "Time(10s)", zlab = "Kernel Distribution"
)

KC7Z1HWOOCZ[XMH03%7WZ@N.png


构建空框架


之后就是使用参数内部的add = TRUE 加入各个密度函数图以及点估计。

for(i in 1:length(mean1)){
  scatter3D(x, rep(i,len), z[,i], add = TRUE,type ='l', col = col[i], pch = 16)
  scatter3D(x[which.max(z[,i])], y[i], 0 , add = TRUE, type ='h', col = col[i], pch = 16)
}

K[UKB`~LH%C{N$UH$6Z4BOQ.png


添加密度函数和点估计


这时基本得到了与文献中类似的 3D 密度函数图啦!真实值也可以在循环中加入,这里就不再进行啦。


如果你想换一种箱子风格可以调整 bty 参数,例如:bty = "g" , bty = "f"等。

image.gifbty = "g"P}XMCO16)Y@V`J``0Y258YU.png

目录
相关文章
|
6月前
|
算法 固态存储 计算机视觉
Focaler-IoU开源 | 高于SIoU+关注困难样本,让YOLOv5再涨1.9%,YOLOv8再涨点0.3%
Focaler-IoU开源 | 高于SIoU+关注困难样本,让YOLOv5再涨1.9%,YOLOv8再涨点0.3%
246 0
|
6月前
|
机器学习/深度学习 缓存 算法
【论文速递】CVPR2020 - CRNet:用于小样本分割的交叉参考网络
【论文速递】CVPR2020 - CRNet:用于小样本分割的交叉参考网络
|
6月前
|
机器学习/深度学习 编解码 算法
英文论文(sci)解读复现:基于YOLOv5的自然场景下苹果叶片病害实时检测
英文论文(sci)解读复现:基于YOLOv5的自然场景下苹果叶片病害实时检测
269 0
|
人工智能 算法 图形学
山大SIGGRAPH 2023 最佳论文得主分享:点云法向估计及保特征重建
山大SIGGRAPH 2023 最佳论文得主分享:点云法向估计及保特征重建
231 0
|
6月前
复现sci顶刊中的画中画(局部细节放大)
复现sci顶刊中的画中画(局部细节放大)
412 0
|
数据可视化 Go
一行代码绘制高分SCI火山图
经过一段时间的文献阅读和资料查询,终于找到了一个好用而且简单的包——ggVolcano, 它是一个基于R语言和ggplot2绘图包开发的生物信息学数据可视化工具。它可以用于绘制火山图(Volcano plot),帮助研究者分析高通量实验数据,如基因表达谱或蛋白质组学数据,以识别差异表达或差异富集的基因或蛋白质。
359 0
|
机器学习/深度学习 索引
一行代码绘制高分SCI限制立方图
Restricted cubic splines (RCS)是一种基于样条函数的非参数化模型,它可以可靠地拟合非线性关系,可以自适应地调整分割结点。在统计学和机器学习领域,RCS通常用来对连续型自变量进行建模,并在解释自变量与响应变量的关系时更加准确和精细。之前有写一篇RCS的文章,但是还是有一定的难度,经过一段时间的研究,发现rcssci包更为简便好用。
336 0
|
机器学习/深度学习
复现 sci 顶刊中的 3D 密度函数图
复现 sci 顶刊中的 3D 密度函数图
77 0
|
机器学习/深度学习
CVPR2021 GAN详细解读 | AdaConv自适应卷积让你的GAN比AdaIN更看重细节(附论文下载)(二)
CVPR2021 GAN详细解读 | AdaConv自适应卷积让你的GAN比AdaIN更看重细节(附论文下载)(二)
145 0