【发布时间】:2017-07-14 21:03:00
【问题描述】:
我想使用循环神经网络 (RNN) 预测日前的功耗。但是,我发现 RNN 所需的数据格式(样本、时间步长、特征)令人困惑。让我用一个例子来解释:
我在 Dropbox 上有 power_dataset.csv,其中包含 6 月 5 日至 6 月 18 日期间每 10 分钟的耗电量(每天 144 次观察)。现在,要使用 rnn R 包检查 RNN 的性能,我按照以下步骤操作
- 使用 6 月 5 日至 16 日的数据训练模型
M供 6 月 17 日使用 - 使用
M预测 6 月 18 日的使用情况并更新 6 月 6 日至 17 日的使用情况
我对RNN数据格式的理解是:
样本数:样本数或观察数。
时间步数:模式重复时的步数。就我而言,一天发生 144 次观察,因此每连续 144 次观察构成时间步长。换句话说,它定义了季节性周期。
特征:特征数,在我的例子中是一个,即历史天数的消费时间序列
因此,我的脚本如下:
library(rnn)
df <- read.csv("power_dataset.csv")
train <- df[1:2016,] # train set from 5-16 June
test <- df[145:dim(df)[1],] # test set from 6-18 June
# prepare data to train a model
trainX <- train[1:1872,]$power # using only power column now
trainY <- train[1873:dim(train)[1],]$power
# data formatting acc. to rnn as [samples, timesteps, features]
tx <- array(trainX,dim=c(NROW(trainX),144,1))
ty <- array(trainY,dim=c(NROW(trainY),144,1))
model <- trainr(X=tx,Y=ty,learningrate = 0.04, hidden_dim = 10, numepochs = 100)
错误输出是:
The sample dimension of X is different from the sample dimension of Y.
该错误是由于错误的数据格式而产生的。如何正确格式化数据?
【问题讨论】:
标签: r machine-learning deep-learning lstm recurrent-neural-network