tensorflow 对于LSTM时间序列模型,什么是好的序列长度?

cigdeys3  于 2023-03-19  发布在  其他
关注(0)|答案(1)|浏览(204)

给定一个日期帧(m,n),其中每个m是一个时间步长,n是特征的数量。对于非语言时间序列LSTM,序列长度的合适数字是多少?当2D矩阵转换为[Batch Size,Sequence Length,Features]的3D矩阵时,是否存在某种经验法则来选择序列长度,因为特征是恒定的,而批大小取决于序列长度。
2D转3D功能

def splitter(seql,traindf,ytrue):
  m,n = traindf.shape
  timestep = m
  X_Train = []
  Y_Train = []
  for i in range(seql,timestep):
    X_Train.append(traindf[i-seql:i])
    Y_Train.append(ytrue[i][0])
  X_Train,Y_Train = np.array(X_Train),np.array(Y_Train)
  return X_Train,Y_Train

我能想到的最好的选择是对序列长度进行超参数调整,看起来序列长度越小,测试结果越好,但问题是不同的序列长度值会得到不同大小的测试矩阵,这使得比较序列长度超参数之间结果的重要性变得困难。

xxhby3vn

xxhby3vn1#

序列长度通常是你搜索的超参数但是,您可以根据您的时态数据和您的领域知识来确定该搜索的相对范围。例如,如果您根据经验知道7天前的销售额似乎根本无法预测当前的销售额,则您可以将序列长度限制为7。此外,您还应固定测试集,使其不会'例如,你可能有1000个例子,所有例子的时间步长都是你的上限,然后让你的数据加载器总是返回两个TensorX -〉(batch_size,seq_len,features)和Y -〉(batch_size,n_targets)。

相关问题