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

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

当我们将CNN(卷积神经网络)模型用于训练多维类型的数据(例如图像)时,它们非常有用。我们还可以实现CNN模型进行回归数据分析。我们之前使用Python进行CNN模型回归 ,在本文中,我们在R中实现相同的方法。

我们使用一维卷积函数来应用CNN模型。我们需要Keras R接口才能在R中使用Keras神经网络API。如果开发环境中不可用,则需要先安装。本教程涵盖:

  1. 准备数据
  2. 定义和拟合模型
  3. 预测和可视化结果
  4. 源代码

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


library(keras)
library(caret)

准备

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

 



set.seed(123)
boston = MASS::Boston
indexes = 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,833
Trainable params: 24,833
Non-trainable params: 0
________________________________________________________________________

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






print(scores)
loss
24.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中的keras CNN模型拟合和预测回归数据。


相关文章
|
1天前
|
机器学习/深度学习 人工智能 算法
食物识别系统Python+深度学习人工智能+TensorFlow+卷积神经网络算法模型
食物识别系统采用TensorFlow的ResNet50模型,训练了包含11类食物的数据集,生成高精度H5模型。系统整合Django框架,提供网页平台,用户可上传图片进行食物识别。效果图片展示成功识别各类食物。[查看演示视频、代码及安装指南](https://www.yuque.com/ziwu/yygu3z/yhd6a7vai4o9iuys?singleDoc#)。项目利用深度学习的卷积神经网络(CNN),其局部感受野和权重共享机制适于图像识别,广泛应用于医疗图像分析等领域。示例代码展示了一个使用TensorFlow训练的简单CNN模型,用于MNIST手写数字识别。
16 3
|
6天前
|
机器学习/深度学习 算法 数据挖掘
深度学习500问——Chapter05: 卷积神经网络(CNN)(4)
深度学习500问——Chapter05: 卷积神经网络(CNN)(4)
15 1
|
6天前
|
机器学习/深度学习 自然语言处理 计算机视觉
深度学习500问——Chapter05: 卷积神经网络(CNN)(3)
深度学习500问——Chapter05: 卷积神经网络(CNN)(3)
13 1
|
6天前
|
机器学习/深度学习 存储 算法
卷积神经网络(CNN)的数学原理解析
卷积神经网络(CNN)的数学原理解析
36 1
卷积神经网络(CNN)的数学原理解析
|
6天前
|
机器学习/深度学习 自然语言处理 计算机视觉
深度学习500问——Chapter05: 卷积神经网络(CNN)(2)
深度学习500问——Chapter05: 卷积神经网络(CNN)(2)
14 2
|
6天前
|
机器学习/深度学习 算法 PyTorch
卷积神经网络(CNN)——基础知识整理
卷积神经网络(CNN)——基础知识整理
31 2
|
6天前
|
机器学习/深度学习 存储 自然语言处理
深度学习500问——Chapter05: 卷积神经网络(CNN)(1)
深度学习500问——Chapter05: 卷积神经网络(CNN)(1)
19 1
|
6天前
|
机器学习/深度学习 PyTorch 算法框架/工具
使用Python实现卷积神经网络(CNN)
使用Python实现卷积神经网络(CNN)的博客教程
34 1
|
6天前
|
机器学习/深度学习 数据可视化 算法
R语言神经网络与决策树的银行顾客信用评估模型对比可视化研究
R语言神经网络与决策树的银行顾客信用评估模型对比可视化研究
|
6天前
|
机器学习/深度学习 监控 数据可视化
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例2
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例

热门文章

最新文章