【視頻】R語言實現(xiàn)CNN(卷積神經(jīng)網(wǎng)絡(luò))模型進(jìn)行回歸數(shù)據(jù)分析
原文鏈接:http://tecdat.cn/?p=18149
原文出處:拓端數(shù)據(jù)部落公眾號
?
當(dāng)我們將CNN(卷積神經(jīng)網(wǎng)絡(luò))模型用于訓(xùn)練多維類型的數(shù)據(jù)(例如圖像)時,它們非常有用。我們還可以實現(xiàn)CNN模型進(jìn)行回歸數(shù)據(jù)分析。我們之前使用Python進(jìn)行CNN模型回歸?,在本文中,我們在R中實現(xiàn)相同的方法。
視頻:R語言實現(xiàn)CNN(卷積神經(jīng)網(wǎng)絡(luò))模型進(jìn)行回歸數(shù)據(jù)分析
?
我們使用一維卷積函數(shù)來應(yīng)用CNN模型。我們需要Keras R接口才能在R中使用Keras神經(jīng)網(wǎng)絡(luò)API。如果開發(fā)環(huán)境中不可用,則需要先安裝。本教程涵蓋:
準(zhǔn)備數(shù)據(jù)
定義和擬合模型
預(yù)測和可視化結(jié)果
源代碼
我們從加載本教程所需的庫開始。
?
library(keras)
library(caret)
準(zhǔn)備
數(shù)據(jù)在本教程中,我們將波士頓住房數(shù)據(jù)集用作目標(biāo)回歸數(shù)據(jù)。首先,我們將加載數(shù)據(jù)集并將其分為訓(xùn)練和測試集。
?
set.seed(123)
boston = MASS::Boston
indexes = createDataPartition(boston$medv, p = .85, list = F)
train = boston[indexes,]
test = boston[-indexes,]
接下來,我們將訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)的x輸入和y輸出部分分開,并將它們轉(zhuǎn)換為矩陣類型。您可能知道,“ medv”是波士頓住房數(shù)據(jù)集中的y數(shù)據(jù)輸出,它是其中的最后一列。其余列是x輸入數(shù)據(jù)。
檢查維度。
?
dim(xtrain)
[1] 432 ?13
dim(ytrain)
[1] 432 ? 1
接下來,我們將通過添加另一維度來重新定義x輸入數(shù)據(jù)的形狀。
?
dim(xtrain)
[1] 432 ?13 ? 1
dim(xtest)
[1] 74 13 ?1
在這里,我們可以提取keras模型的輸入維。
?
print(in_dim)
[1] 13 ?1
定義和擬合模型
我們定義Keras模型,添加一維卷積層。輸入形狀變?yōu)樯厦娑x的(13,1)。我們添加Flatten和Dense層,并使用“ Adam”優(yōu)化器對其進(jìn)行編譯。
?
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
________________________________________________________________________
接下來,我們將使用訓(xùn)練數(shù)據(jù)對模型進(jìn)行擬合。
?
print(scores)
loss
24.20518

預(yù)測和可視化結(jié)果
現(xiàn)在,我們可以使用訓(xùn)練的模型來預(yù)測測試數(shù)據(jù)。
predict(xtest)
我們將通過RMSE指標(biāo)檢查預(yù)測的準(zhǔn)確性。
?
cat("RMSE:", RMSE(ytest, ypred))
RMSE: 4.935908
最后,我們將在圖表中可視化結(jié)果檢查誤差。
?
x_axes = seq(1:length(ypred))
lines(x_axes, ypred, col = "red", type = "l", lwd = 2)
legend("topl

??在本教程中,我們簡要學(xué)習(xí)了如何使用R中的keras CNN模型擬合和預(yù)測回歸數(shù)據(jù)。

最受歡迎的見解
1.r語言用神經(jīng)網(wǎng)絡(luò)改進(jìn)nelson-siegel模型擬合收益率曲線分析
2.r語言實現(xiàn)擬合神經(jīng)網(wǎng)絡(luò)預(yù)測和結(jié)果可視化
3.python用遺傳算法-神經(jīng)網(wǎng)絡(luò)-模糊邏輯控制算法對樂透分析
4.用于nlp的python:使用keras的多標(biāo)簽文本lstm神經(jīng)網(wǎng)絡(luò)分類
5.用r語言實現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測股票實例
6.R語言基于Keras的小數(shù)據(jù)集深度學(xué)習(xí)圖像分類
7.用于NLP的seq2seq模型實例用Keras實現(xiàn)神經(jīng)機(jī)器翻譯
8.python中基于網(wǎng)格搜索算法優(yōu)化的深度學(xué)習(xí)模型分析糖
9.matlab使用貝葉斯優(yōu)化的深度學(xué)習(xí)
?