我正在寻找有关如何使用CNN进行回归时间序列预测的说明。我想对单变量时间序列实施多步预测。我已经阅读了一些说明,但没有找到适合我的数据集的内容:一项功能和大约400个观测值。
有人知道这样一个时间序列的易于理解和适用的代码示例吗?
非常感谢您的帮助,
利昂
答案 0 :(得分:1)
将CNN用于序列数据可能很难设置。以我的经验,CNN的结果接近RNN(GRU和LSTM),但CNN的计算速度要快得多。
首先,请确保您的数据按照Conv1D
的预期形状:(instances, time steps, predictors)
。
X_cnn = X.reshape(X.shape[0], X.shape[1] // predictors, predictors)
然后,语法为:
model_cnn = Sequential()
model_cnn.add(layers.Conv1D(A, B, activation = 'relu',
input_shape = (X_cnn.shape[1], X_cnn.shape[2])))
model_cnn.add(layers.Flatten())
model_cnn.add(layers.Dense(1))
其中A
是神经元的数量,B
是要考虑的时间步数。注意Flatten()
层之后的Conv1D
层。希望这可以帮助您入门。