在包 rnn 中有一个如何进行网络训练的示例,在此链接中进行了描述(示例 1)。在这个包的方法中,输入以 3D 数组的格式给出,其中 dim 1: samples; 暗淡2:时间;暗淡 3:变量,但没有明确区分输入和目标(输入和目标,这是 RNA 包中的常用方法)。此外,在包描述中,条目和目标必须具有相同的维度。那么,如何在 rnn 包中为循环神经网络定义我的数据集?数据到一个可复制的例子。
我在 DF 上的训练数据(输入),前五行:
> data[1:5,2:14]
Ibiara.P_t Ibiara.P_t_1 Ibiara.P_t_2 Nova.Olinda.P_t_1 Princesa.Isabel.P_t_1 Boa.ventura.P_t_1 Boa.Ventura.P_t_2
1966-01-01 0 0 0 0 0 0 0
1966-01-02 0 0 0 0 0 0 0
1966-01-03 0 0 0 0 0 0 0
1966-01-04 0 0 0 0 0 0 0
1966-01-05 0 0 0 0 0 0 0
Piancó.P_t Piancó.P_t_1 Piancó.P_t_2 Q_t_1 Q_t_2 Q_t_3
1966-01-01 0 0 0 0 0 0
1966-01-02 0 0 0 0 0 0
1966-01-03 0 0 0 0 0 0
1966-01-04 0 0 0 0 0 0
1966-01-05 0 0 0 0 0 0
我的目标数据,前五行:
> data[1:5,1]
Q_t
1966-01-01 0
1966-01-02 0
1966-01-03 0
1966-01-04 0
1966-01-05 0
那是我定义数据的代码:
# Scaling data for the NN
maxs <- apply(data, 2, max)
mins <- apply(data, 2, min)
scaled <- as.data.frame(scale(data, center = mins, scale = maxs - mins))
# Train-test split
train_ <- scaled[1:train_days,]
test_ <- scaled[(train_days+1):nrow(data),]
X <- t(as.matrix(train_[,1]))
Y <- t(as.matrix(test_[,2:14]))
# Train model
model <- trainr(Y = Y,
X = X,
learningrate = 0.01,
hidden_dim = 10,
numepochs = 10)