R语言实现CNN(卷积神经网络)模型进行回归数据分析

Posted 拓端数据部落

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言实现CNN(卷积神经网络)模型进行回归数据分析相关的知识,希望对你有一定的参考价值。

原文链接:http://tecdat.cn/?p=18149

 

当我们将CNN(卷积神经网络)模型用于训练多维类型的数据(例如图像)时,它们非常有用。我们还可以实现CNN模型进行回归数据分析。我们之前使用Python进行CNN模型回归 ,在本文中,我们在R中实现相同的方法。
我们使用一维卷积函数来应用CNN模型。我们需要Keras R接口才能在R中使用Keras神经网络API。如果开发环境中不可用,则需要先安装。本教程涵盖:

  1. 准备数据

  2. 定义和拟合模型

  3. 预测和可视化结果

  4. 源代码

我们从加载本教程所需的库开始。


library(keras)library(caret)

准备

数据在本教程中,我们将波士顿住房数据集用作目标回归数据。首先,我们将加载数据集并将其分为训练和测试集。
 


set.seed(123)boston = MASS::Bostonindexes = createDataPartition(boston$medv, p = .85, list = F)

train = boston[indexes,]test = boston[-indexes,]

接下来,我们将训练数据和测试数据的x输入和y输出部分分开,并将它们转换为矩阵类型。您可能知道,“ medv”是波士顿住房数据集中的y数据输出,它是其中的最后一列。其余列是x输入数据。
检查维度。



dim(xtrain)[1] 432 13

dim(ytrain)[1] 432 1

接下来,我们将通过添加另一维度来重新定义x输入数据的形状。
 



dim(xtrain)[1] 432 13 1

dim(xtest)[1] 74 13 1

在这里,我们可以提取keras模型的输入维。



print(in_dim)[1] 13 1

定义和拟合模型

我们定义Keras模型,添加一维卷积层。输入形状变为上面定义的(13,1)。我们添加Flatten和Dense层,并使用“ Adam”优化器对其进行编译。
 






model %>% summary()________________________________________________________________________Layer (type) Output Shape Param #========================================================================conv1d_2 (Conv1D) (None, 12, 64) 192________________________________________________________________________flatten_2 (Flatten) (None, 768) 0________________________________________________________________________dense_3 (Dense) (None, 32) 24608________________________________________________________________________dense_4 (Dense) (None, 1) 33========================================================================Total params: 24,833Trainable params: 24,833Non-trainable params: 0________________________________________________________________________

接下来,我们将使用训练数据对模型进行拟合。
 





print(scores)loss24.20518



预测和可视化结果

现在,我们可以使用训练的模型来预测测试数据。

predict(xtest)

我们将通过RMSE指标检查预测的准确性。
 



cat("RMSE:", RMSE(ytest, ypred))RMSE: 4.935908

最后,我们将在图表中可视化结果检查误差。
 



x_axes = seq(1:length(ypred))

lines(x_axes, ypred, col = "red", type = "l", lwd = 2)legend("topl

R语言实现CNN(卷积神经网络)模型进行回归数据分析

  在本教程中,我们简要学习了如何使用R中的keras CNN模型拟合和预测回归数据。


R语言实现CNN(卷积神经网络)模型进行回归数据分析

点击标题查阅往期内容













更多内容,请点击左下角“阅读原文”查看报告全文


R语言实现CNN(卷积神经网络)模型进行回归数据分析

R语言实现CNN(卷积神经网络)模型进行回归数据分析

R语言实现CNN(卷积神经网络)模型进行回归数据分析


案例精选、技术干货 第一时间与您分享

长按二维码加关注

更多内容,请点击左下角“阅读原文”查看报告全文





以上是关于R语言实现CNN(卷积神经网络)模型进行回归数据分析的主要内容,如果未能解决你的问题,请参考以下文章

多层多输入的CNN-LSTM时间序列回归预测(卷积神经网络-长短期记忆网络)——附代码

从线性回归到CNN

CNN回归预测基于matlab卷积神经网络CNN数据回归预测含Matlab源码 2003期

CNN回归预测基于matlab卷积神经网络CNN数据回归预测含Matlab源码 2003期

CNN回归预测基于matlab卷积神经网络CNN数据回归预测含Matlab源码 2384期

9 大主题卷积神经网络(CNN)的 PyTorch 实现