【问题标题】:using keras model fit multiple times for each training dataset对每个训练数据集使用 keras 模型多次拟合
【发布时间】: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


【解决方案1】:

这是我从你的问题中了解到的:

  • 您有 10 个不同的时间序列文件,它们都包含单独的数据,范围从 0hrs 到 24hrs。我的第一个问题是这些文件的顺序是什么,意思是文件没有。 1 和文件编号。 2等属于同一个序列?

    1. 如果是,您可以尝试附加这些数据帧并训练一个简单的预测模型并查看结果。
    2. 由于您所有的文件范围从 0 小时到 24 小时,您可以将 batch_size 设置为等于您的文件 长度。生成器函数在您不知道数据集的结尾或时间序列长度不同的情况下很有用。

如果否,您必须针对不同的时间序列训练不同的模型。

【讨论】:

  • 如果我选择选项 1。那么您能否详细说明一下简单的预测模型?例如,正如您建议的那样,我有 5 个数据框的列表,对于每个数据框,我都将适合模型。我说的对吗?
  • 如果所有这些数据帧都构成一个连续时间序列的一部分,那么您可以采用上述方法。唯一的变化是,您需要构建单个数据框并在其上拟合模型,而不是迭代不同的数据框。在对数据了解不多的情况下,如果我提出其他任何建议,那就太天真了。
  • 请忘记0小时到24小时的例子,我说它是为了做一个例子。我有 65 个文件,每个文件从序列 0 开始,按时间戳 1 增加(例如,0,1,2,3),一些包含 2400 行,一些包含 2000 行。现在我无法连接所有这些,因为一个文件是 0-2000,下一个文件从 0-2400 开始。所以我尝试了两种方法,1)一种是使用 for 循环并在每个迭代 model.fit 每个文件中使用一个。 2)另一个也在每个文件的循环中使用 fit_generator 。请评论哪一个是对的?提前致谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-24
相关资源
最近更新 更多