【发布时间】:2019-10-04 12:37:08
【问题描述】:
我有时间序列 10 个数据文件。其中我正在训练一个具有 5 个数据文件的 LSTM 模型,使用 3 个文件进行验证并使用 2 个文件进行测试。我使用了 Keras 的 fit_generator 并为训练和验证数据帧编写了一个生成器函数。但不幸的是,在预测期间,它的初始预测远高于原始目标。
另一方面,如果我对每个数据帧使用 model.fit,那么相对而言我会得到更好的结果。我的问题:“对于每个数据文件都是独立的(例如,每个包含从 0 小时到 24 小时的评级)的时间序列数据,在每个数据文件的每次迭代中使用 fit 是否正确?”
for scaled_dataset in training_list:
reframed_new = series_to_supervised(scaled_dataset, n_in, n_out)
values = reframed_new.values
train = values
# split into input and outputs
train_X, train_y = train[:, :-1], train[:, -1]
# reshape input to be 3D [samples, timesteps, features]
train_X = train_X.reshape((train_X.shape[0], 1, train_X.shape[1]))
model.fit(train_X, train_y, epochs=50, batch_size=475, validation_data=None, verbose=1, shuffle=False)
在我的代码训练列表中包含所有单独的 5 个数据帧。因此,在每次迭代中,我都会拟合一个模型。谁能告诉我这是否是正确的方法 提前致谢
【问题讨论】:
-
在训练准确度、验证准确度中,“我得到了更好的结果”是什么意思?另外,您的文件是如何分发的,每个文件是否代表不同的时期?
-
更好的结果意味着 w.r.t.测试 RMSE 以及训练准确性。例如,每个月分发一个文件
-
好的,所以你必须使用以前的文件作为训练并验证未来的文件,否则你会泄露模型中的信息。
-
@BenjaminBreton 我的问题是关于训练代码风格的。为每个数据文件拟合模型是否正确?或者如果我在每个数据文件的循环中拟合模型,它不适用于时间序列数据文件?
标签: python-3.x machine-learning keras time-series