模糊神经网络控制算法_R语言实现CNN(卷积神经网络)模型进行回归数据分析...

本教程展示了如何在R中使用Keras接口实现卷积神经网络(CNN)模型进行回归分析。通过波士顿住房数据集,讨论了数据准备、模型定义与拟合、预测及结果可视化的过程。
摘要由CSDN通过智能技术生成

原文链接:

http://tecdat.cn/?p=18149​tecdat.cn

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

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

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


  1. library(keras)

  2. library(caret)

准备

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


  1. set.seed(123)

  2. boston = MASS::Boston

  3. indexes = createDataPartition(boston$medv, p = .85, list = F)

  1. train = boston[indexes,]

  2. test = boston[-indexes,]


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


  1. dim(xtrain)

  2. [1] 432 13

  1. dim(ytrain)

  2. [1] 432 1


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


  1. dim(xtrain)

  2. [1] 432 13 1

  1. dim(xtest)

  2. [1] 74 13 1


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


  1. print(in_dim)

  2. [1] 13 1

定义和拟合模型

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


  1. model %>% summary()

  2. ________________________________________________________________________

  3. Layer (type) Output Shape Param #

  4. ========================================================================

  5. conv1d_2 (Conv1D) (None, 12, 64) 192

  6. ________________________________________________________________________

  7. flatten_2 (Flatten) (None, 768) 0

  8. ________________________________________________________________________

  9. dense_3 (Dense) (None, 32) 24608

  10. ________________________________________________________________________

  11. dense_4 (Dense) (None, 1) 33

  12. ========================================================================

  13. Total params: 24,833

  14. Trainable params: 24,833

  15. Non-trainable params: 0

  16. ________________________________________________________________________


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


  1. print(scores)

  2. loss

  3. 24.20518

a625354764e44ebd41b3d1b72be852e1.png

预测和可视化结果

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

predict(xtest)


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


  1. cat("RMSE:", RMSE(ytest, ypred))

  2. RMSE: 4.935908


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


  1. x_axes = seq(1:length(ypred))

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

  3. legend("topl

8162187aee20d348d020de4e6a93a906.png

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


fccc7d182e355d3d5a38787877ab8b4b.png

最受欢迎的见解

1.r语言用神经网络改进nelson-siegel模型拟合收益率曲线分析

2.r语言实现拟合神经网络预测和结果可视化

3.python用遗传算法-神经网络-模糊逻辑控制算法对乐透分析

4.用于nlp的python:使用keras的多标签文本lstm神经网络分类

5.用r语言实现神经网络预测股票实例

6.R语言基于Keras的小数据集深度学习图像分类

7.用于NLP的seq2seq模型实例用Keras实现神经机器翻译

8.python中基于网格搜索算法优化的深度学习模型分析糖

9.matlab使用贝叶斯优化的深度学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值