zoukankan      html  css  js  c++  java
  • R语言实现CNN(卷积神经网络)模型进行回归数据分析

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

    当我们将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)
    4.  
       
    1.  
      train = boston[indexes,]
    2.  
      test = boston[-indexes,]


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

    1.  
      dim(xtrain)
    2.  
      [1] 432 13
    3.  
       
    1.  
      dim(ytrain)
    2.  
      [1] 432 1


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

    1.  
      dim(xtrain)
    2.  
      [1] 432 13 1
    3.  
       
    1.  
      dim(xtest)
    2.  
      [1] 74 13 1


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

    1.  
      print(in_dim)
    2.  
      [1] 13 1

    定义和拟合模型

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

    1.  
       
    2.  
       
    3.  
      model %>% summary()
    4.  
      ________________________________________________________________________
    5.  
      Layer (type) Output Shape Param #
    6.  
      ========================================================================
    7.  
      conv1d_2 (Conv1D) (None, 12, 64) 192
    8.  
      ________________________________________________________________________
    9.  
      flatten_2 (Flatten) (None, 768) 0
    10.  
      ________________________________________________________________________
    11.  
      dense_3 (Dense) (None, 32) 24608
    12.  
      ________________________________________________________________________
    13.  
      dense_4 (Dense) (None, 1) 33
    14.  
      ========================================================================
    15.  
      Total params: 24,833
    16.  
      Trainable params: 24,833
    17.  
      Non-trainable params: 0
    18.  
      ________________________________________________________________________
    19.  
       
    20.  


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

    1.  
       
    2.  
      print(scores)
    3.  
      loss
    4.  
      24.20518



    预测和可视化结果

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

    predict(xtest)


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

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


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

    1.  
      x_axes = seq(1:length(ypred))
    2.  
       
    3.  
      lines(x_axes, ypred, col = "red", type = "l", lwd = 2)
    4.  
      legend("topl

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


    最受欢迎的见解

    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使用贝叶斯优化的深度学习

  • 相关阅读:
    LeetCode
    LeetCode
    控制反转(Ioc)
    KMP算法
    *&m与m的区别
    函数指针与函数指针数组的使用方法
    C++四种类型转换
    内存分配:堆内存,栈内存
    汇编 基础
    i++,++i 作为参数
  • 原文地址:https://www.cnblogs.com/tecdat/p/14078237.html
Copyright © 2011-2022 走看看