拓端tecdat|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使用貝葉斯優化的深度學習

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM