RNN 包和“Predictr”的问题

数据挖掘 机器学习 神经网络 r 预测建模 rnn
2022-02-21 02:16:41

我有两个关于如何使用 R 的 RNN 包的问题,​​特别是训练器和预测器功能。

假设我有 5 个不同变量的 4000 步时间序列。

  1. 由于输入必须是 3D 数组,因此应该如何将其传递给 RNN?它应该是一个 dim(1, 4000, 5) 或 dim(4000,1,5) 数组还是完全不同的数组?

此外,假设我成功训练了我的 RNN,并想使用预测函数进行一些预测。

  1. 输出将具有哪个维度以及如何解释?

到目前为止,我一直尝试使用以下代码将数据输入为 3D 数组 (4000, 1, 5):

RecNN <- trainr(TrainR, TrainI, 
  learningrate = 0.003, momentum = 0.003, hidden_dim = c(100),
  network_type = "rnn", batch_size = 50,
  numepochs = 100, sigmoid = "logistic", use_bias = TRUE)

print("--- DONE LEARNING ---")

然后将预测函数与输入 (250, 1, 5) 一起使用:

results1 <- predictr(RecNN, TestI, hidden = TRUE, real_output = TRUE)

List of 2
 $ : num [1:250, 1, 1:100] 0 0 0 0 0 0 0 0 0 0 ...
 $ : num [1:250, 1, 1:2] 1 1 1 1 1 1 1 1 1 1 ...

非常感谢!

1个回答

手册提供了所需的尺寸(请参阅trainr功能帮助):

输入 X 的尺寸需要为:

dim 1: samples
dim 2: time
dim 3: variables 

输出 Y 的尺寸应为:

dim 1: samples (must be equal to dim 1 of X)
dim 2: time (must be equal to dim 2 of X)
dim 3: variables (could be 1 or more, if a matrix, will be coerce to array)