在时间序列数据上训练 MLP 神经网络?

数据挖掘 Python 喀拉斯 张量流 时间序列 预测
2022-03-09 13:32:55

新手问题在这里,但我很想问是否可以在时间序列数据上训练 MLP 神经类型网络?

我拥有的数据集是来自建筑功率计的电力类型数据集,我可以发现我可以训练一个不错的 NN 模型,其中包括大量天气数据以及许多用于一周时间的热编码虚拟变量. (日、小时、月数等)

我正在使用 Tensorflow Keras 库在 Python 中进行试验,并且我知道训练过程中的默认设置会随机打乱数据。对于随机洗牌将从数据中消除季节性的时间序列类型问题,这是一个否决吗?(固定/非固定)对数据进行混洗的结果一目了然,但不是随机混洗数据,MLP NN 的结果很差,就像模型训练不好一样。

我知道其他一些时间序列预测方法可以包括 ARIMA、LSTM 等,但我很想知道 MLP 是否也可以用于这些目的?我最终需要的是一种短期预测方法,可以结合每小时天气预报(来自 Web API)来预测未来每小时的建筑用电量。非常感谢任何提示。

谢谢

2个回答

所以我在机器学习掌握帖子上发布了同样的问题,关于去除时间序列数据的趋势和季节性差异变换Jason Brownlee 回答了我的问题:

是的,你可以使用 MLP、CNN 和 LSTM。它需要首先使用滑动窗口将数据转换为监督学习问题:

https://machinelearningmastery.com/time-series-forecasting-supervised-learning/

然后以尊重 obs 的时间顺序的方式评估模型,称为前向验证:

https://machinelearningmastery.com/backtest-machine-learning-models-time-series-forecasting/

你可以在这里看到数十个教程和我的书:

https://machinelearningmastery.com/start-here/#deep_learning_time_series

我对这篇文章的回复

本 2021 年 2 月 12 日上午 8:09 #

很酷,感谢您提供的所有信息。因此,如果我对 MLP NN 使用多元滑动窗口,那么在训练模型时可以shuffle_data == True吗?还是我不应该打乱训练数据……?非常感谢!

杰森对我上述问题的答复

杰森布朗利 2021 年 2 月 12 日下午 1:36 #

是的,只要训练数据集中的所有数据与测试集相比都是过去的数据。

考虑神经网络中分类特征的实体嵌入,这对于 NN 上的表格数据是必要的。

不是我的: https ://www.kaggle.com/abhishek/entity-embeddings-to-handle-categories