预测时间序列,基于相似序列的历史样本很少

数据挖掘 Python 喀拉斯 时间序列
2021-10-03 16:05:15

我正在尝试使用 Keras 构建一个模型,以根据传感器的类型和相同类型传感器的历史数据来预测传感器的时间序列。

下图显示了 3 个时间序列,由 3 个相同类型的传感器生成,绿色虚线是新传感器数据,垂直线是新传感器数据结束的位置。

在此处输入图像描述

我尝试编写一个 LSTM 网络,它返回每个输入时间步的隐藏状态输出,而目标是每个时间戳的值。然后尝试预测新的时间序列,为模型提供传感器历史数据的几个点。没有运气:(

所以我猜我走错了路。根据同一类型的其他时间序列的历史来预测仅具有几个历史样本的时间序列有哪些选择?

任何帮助/参考/视频都会被欣赏

2个回答

我建议使用 ARIMA 或 ES 等统计预测技术,但这些模型通常不能很好地概括时间序列,因此每个时间序列都需要一个

这里是使用 LSTM 进行预测的一个很好的入门 - https://www.tensorflow.org/tutorials/structured_data/time_series但是,如果您没有足够的数据,NN 会导致测试结果不佳。

对于您的情况,我建议您尝试一种回归方法 - 将您的时间序列构建为回归特征格式。之后,您可以使用sklearn 中的回归模型,从线性开始,然后转向更复杂的模型。因为您的数据较少,您可能希望首先探索不太复杂的模型以防止过度拟合。例如,对于特征,您可以创建滞后特征(两个时间步后信号的值是多少,过去 2 个时间步的平均值/标准是多少,最后 6 个时间步的最大值是多少等等)。如果您想参考代码或获取有关特征提取的具​​体想法,请查看任何关于时间序列预测的 kaggle 比赛

数据可能无法进行准确的时间序列预测。

数据在垂直线上似乎是非平稳的(即,改变了分布特性)。在该时间点之前的训练可能无法对之后的时间点产生准确的预测。

此外,垂直条之后的黄色、蓝色和红色线条非常嘈杂(甚至可能是随机游走)。