使用keras模型对每个训练数据集进行多次拟合

时间:2019-05-17 07:53:11

标签: python-3.x machine-learning keras time-series

我有时间序列10数据文件。其中,我正在训练一个具有5个数据文件的LSTM模型,使用3个文件进行验证并使用2个文件进行测试。我使用了Keras的fit_generator,并为训练和验证数据帧编写了一个生成器函数。但是不幸的是,在预测期间,它的初始预测比原始目标要高得多。

另一方面,如果我对每个数据框使用model.fit,那么相对而言,我会得到更好的结果。我的问题是:“对于每个数据文件都独立的时间序列数据(例如,每个数据文件都包含从0 hr到24 hrs的评分)在每个迭代中使用适合度的方法是否正确?”

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个数据框。因此,在每次迭代中,我都适合一个模型。谁能告诉我是否正确的方法 预先感谢

1 个答案:

答案 0 :(得分:0)

这是我从您的问题中了解的信息:

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

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

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