基于图卷积神经网络GCN的时间序列预测:图与递归结构相结合的库存品需求预测

简介: 基于图卷积神经网络GCN的时间序列预测:图与递归结构相结合的库存品需求预测

时间序列预测任务可以按照不同的方法执行。最经典的是基于统计和自回归的方法。更准确的是基于增强和集成的算法,我们必须使用滚动周期生成大量有用的手工特性。另一方面,我们可以使用在开发过程中提供更多自由的神经网络模型,提供对顺序建模的可定制的特性。

循环和卷积结构在时间序列预测中取得了巨大的成功。该领域中有趣的方法是通过采用最初在NLP中本地的Transformers和Attention架构。图结构的使用似乎不常见,在图结构中,我们有一个由不同节点组成的网络,这些节点之间通过某种链接相互关联。我们尝试做的是使用时间序列的图形表示来产生未来的预测。

image.png

在这篇文章中,我们完成了一个销售预测任务,我们利用图卷积神经网络探索数据的嵌套结构,由不同商店中不同商品的不同销售系列组成。


数据

数据集是从Kaggle上过去的竞赛中收集的。Store Item Demand Forecasting Challenge(https://www.kaggle.com/c/demand-forecasting-kernels-only/data预测挑战提供了4年的销售数据,以每天的格式在不同的商店出售的不同的项目。我们有10家店,50种产品,共500个系列。每个商店都出售每种产品。我们的范围是每天为所有项目提供准确的未来预测。

image.png

我们可以使用的数据很少:只有销售额和商品和商店的数字编码。这仍然足以让我们强调一个基本的等级结构。我们所需要做的就是将这个系列按照商品级别进行分组,这样我们就得到了50个组(商品),每个组由10个系列(每个商店中出售的商品)组成;上图中描述了一个组的例子。

在经典的图网络中,所有相关信息都存储在一个称为邻矩阵的对象中。这是数据中所有连接的数值表示。我们的上下文中的相邻矩阵可以通过所有商店中给定商品的销售序列计算得到的相关矩阵来检索。

在我们的方法中,因为要像处理递归体系结构那样将数据分片处理,所以需要对序列进行重新划分,这也是我们模型的一部分。

模型

我们的模型作为输入,接收来自所有商店的销售序列和来自相同序列的相邻矩阵。序列通过LSTM层,而相关矩阵则由图形转换层处理。它们是在Spektral中实现的,Spektral是一个基于Tensorflow的图形深度学习库。它有各种可用的图形层。我们使用最基本的一种,图形进化。它在可学习权重、外部节点特征(与相邻矩阵一起提供)和我们的相关矩阵之间执行一系列卷积操作。不太可能,目前Spektral不支持Window,所以我必须手动提取感兴趣的类并创建Python可执行文件。

我们的模型接收来自所有商店的销售序列和来自相同序列的相邻矩阵作为输入。序列通过LSTM层传递,相关矩阵由GraphConvolution层处理。它们是在Spektral中实现的,Spektral是一个很酷的库,用于基于Tensorflow的图形深度学习。它有各种可用的图形层。我们使用最基本的一个,图卷积GCN。它在可学习的权值、外部节点特征(与邻近矩阵一起提供)和我们的相关矩阵之间进行一系列卷积运算。目前Spektral不支持Window。

def get_model():    
opt = Adam(lr=0.001)    
inp_seq = Input((sequence_length, 10))
    inp_lap = Input((10, 10))
    inp_feat = Input((10, X_train_feat.shape[-1]))    
    x = GraphConv(32, activation='relu')([inp_feat, inp_lap])
    x = GraphConv(16, activation='relu')([x, inp_lap])
    x = Flatten()(x)    
    xx = LSTM(128, activation='relu',return_sequences=True)(inp_seq)
    xx = LSTM(32, activation='relu')(xx)    
    x = Concatenate()([x,xx])
    x = BatchNormalization()(x)
    x = Dropout(0.5)(x)
    x = Dense(128, activation='relu')(x)
    x = Dense(32, activation='relu')(x)
    x = Dropout(0.3)(x)
    out = Dense(1)(x)    
    model = Model([inp_seq, inp_lap, inp_feat], out)
    model.compile(optimizer=opt, loss='mse', metrics=[tf.keras.metrics.RootMeanSquaredError()])    
    return model

如前所述,在开发递归网络时,数据总是像往常一样被处理。序列一个在固定的时间内的商店的产品的销售集合。

在我们的例子中,下一步的步骤是在相同的序列上计算商店间销售的相关矩阵,它表示我们的相邻矩阵。同时还有一些人工特征(如均值、标准差、偏度、峰度、回归系数),由我们对每个序列进行计算,代表我们在网络中的节点特征。

对于给定的样本协方差或相关矩阵,我们可以使用拉普拉斯(Laplacian)归一化来估计邻接矩阵,该归一化可以基于谱卷积的一阶近似来提供高效的逐传播规则(前向和后向传播)。

image.png

训练集是用前两年的数据计算的,而剩下的两年分别用于验证和测试。我为每个商店训练了一个模型,所以我们总共有10个不同的神经网络。

在训练过程的最后,通过相关模型对预测结果进行检索。误差以测试数据上的RMSE计算,下面是报表展示。

image.png

以同样的方式,很容易提取所需预测数据

image.png

总结

在这篇文章中,我采用了图形神经网络在不常见的情况下,如时间序列预测。在我们的深度学习模型中,图依赖与递归部分相结合,试图提供更准确的预测。这种方法似乎很适合我们的问题,因为我们可以强调数据中的基本层次结构,并用相关矩阵对其进行编码

目录
相关文章
|
机器学习/深度学习 算法 数据挖掘
基于WOA鲸鱼优化的BiLSTM双向长短期记忆网络序列预测算法matlab仿真,对比BiLSTM和LSTM
本项目基于MATLAB 2022a/2024b实现,采用WOA优化的BiLSTM算法进行序列预测。核心代码包含完整中文注释与操作视频,展示从参数优化到模型训练、预测的全流程。BiLSTM通过前向与后向LSTM结合,有效捕捉序列前后文信息,解决传统RNN梯度消失问题。WOA优化超参数(如学习率、隐藏层神经元数),提升模型性能,避免局部最优解。附有运行效果图预览,最终输出预测值与实际值对比,RMSE评估精度。适合研究时序数据分析与深度学习优化的开发者参考。
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA遗传优化的BiLSTM双向长短期记忆网络序列预测算法matlab仿真,对比BiLSTM和LSTM
本内容包含基于BiLSTM与遗传算法(GA)的算法介绍及实现。算法通过MATLAB2022a/2024b运行,核心为优化BiLSTM超参数(如学习率、神经元数量),提升预测性能。LSTM解决传统RNN梯度问题,捕捉长期依赖;BiLSTM双向处理序列,融合前文后文信息,适合全局信息任务。附完整代码(含注释)、操作视频及无水印运行效果预览,适用于股票预测等场景,精度优于单向LSTM。
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化TCN-LSTM时间卷积神经网络时间序列预测算法matlab仿真
本内容展示了一种基于粒子群优化(PSO)与时间卷积神经网络(TCN)的时间序列预测方法。通过 MATLAB2022a 实现,完整程序运行无水印,核心代码附详细中文注释及操作视频。算法利用 PSO 优化 TCN 的超参数(如卷积核大小、层数等),提升非线性时间序列预测性能。TCN 结构包含因果卷积层与残差连接,结合 LSTM 构建混合模型,经多次迭代选择最优超参数,最终实现更准确可靠的预测效果,适用于金融、气象等领域。
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化的BiLSTM双向长短期记忆网络序列预测算法matlab仿真,对比BiLSTM和LSTM
本项目基于MATLAB2022a/2024b开发,结合粒子群优化(PSO)算法与双向长短期记忆网络(BiLSTM),用于优化序列预测任务中的模型参数。核心代码包含详细中文注释及操作视频,涵盖遗传算法优化过程、BiLSTM网络构建、训练及预测分析。通过PSO优化BiLSTM的超参数(如学习率、隐藏层神经元数等),显著提升模型捕捉长期依赖关系和上下文信息的能力,适用于气象、交通流量等场景。附有运行效果图预览,展示适应度值、RMSE变化及预测结果对比,验证方法有效性。
|
机器学习/深度学习 算法
基于遗传优化ELM网络的时间序列预测算法matlab仿真
本项目实现了一种基于遗传算法优化的极限学习机(GA-ELM)网络时间序列预测方法。通过对比传统ELM与GA-ELM,验证了参数优化对非线性时间序列预测精度的提升效果。核心程序利用MATLAB 2022A完成,采用遗传算法全局搜索最优权重与偏置,结合ELM快速训练特性,显著提高模型稳定性与准确性。实验结果展示了GA-ELM在复杂数据中的优越表现,误差明显降低。此方法适用于金融、气象等领域的时间序列预测任务。
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化TCN时间卷积神经网络时间序列预测算法matlab仿真
本内容介绍了一种基于PSO(粒子群优化)改进TCN(时间卷积神经网络)的时间序列预测方法。使用Matlab2022a运行,完整程序无水印,附带核心代码中文注释及操作视频。TCN通过因果卷积层与残差连接处理序列数据,PSO优化其卷积核权重等参数以降低预测误差。算法中,粒子根据个体与全局最优位置更新速度和位置,逐步逼近最佳参数组合,提升预测性能。
|
机器学习/深度学习 数据采集 算法
基于GWO灰狼优化的BiLSTM双向长短期记忆网络序列预测算法matlab仿真,对比BiLSTM和LSTM
本项目基于Matlab 2022a/2024b实现,结合灰狼优化(GWO)算法与双向长短期记忆网络(BiLSTM),用于序列预测任务。核心代码包含数据预处理、种群初始化、适应度计算及参数优化等步骤,完整版附带中文注释与操作视频。BiLSTM通过前向与后向处理捕捉序列上下文信息,GWO优化其参数以提升预测性能。效果图展示训练过程与预测结果,适用于气象、交通等领域。LSTM结构含输入门、遗忘门与输出门,解决传统RNN梯度问题,而BiLSTM进一步增强上下文理解能力。
|
机器学习/深度学习 算法 数据安全/隐私保护
基于WOA鲸鱼优化的TCN-GRU时间卷积神经网络时间序列预测算法matlab仿真
本内容包含时间序列预测算法的相关资料,涵盖以下几个方面:1. 算法运行效果预览(无水印);2. 运行环境为Matlab 2022a/2024b;3. 提供部分核心程序,完整版含中文注释及操作视频;4. 理论概述:结合时间卷积神经网络(TCN)与鲸鱼优化算法(WOA),优化TCN超参数以提升非线性时间序列预测性能。通过因果卷积层与残差连接构建TCN模型,并用WOA调整卷积核大小、层数等参数,实现精准预测。适用于金融、气象等领域决策支持。
|
机器学习/深度学习 数据采集 并行计算
基于WOA鲸鱼优化的TCN时间卷积神经网络时间序列预测算法matlab仿真
本内容介绍了一种基于TCN(Temporal Convolutional Network)与WOA(Whale Optimization Algorithm)的时间序列预测算法。TCN通过扩张卷积捕捉时间序列长距离依赖关系,结合批归一化和激活函数提取特征;WOA用于优化TCN网络参数,提高预测精度。算法流程包括数据归一化、种群初始化、适应度计算及参数更新等步骤。程序基于Matlab2022a/2024b开发,完整版含详细中文注释与操作视频,运行效果无水印展示。适用于函数优化、机器学习调参及工程设计等领域复杂任务。
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化TCN-GRU时间卷积神经网络时间序列预测算法matlab仿真
本内容涵盖基于粒子群优化(PSO)与时间卷积神经网络(TCN)的时间序列预测算法。完整程序运行效果无水印,适用于Matlab2022a版本。核心代码配有详细中文注释及操作视频。理论部分阐述了传统方法(如ARIMA)在非线性预测中的局限性,以及TCN结合PSO优化超参数的优势。模型由因果卷积层和残差连接组成,通过迭代训练与评估选择最优超参数,最终实现高精度预测,广泛应用于金融、气象等领域。

热门文章

最新文章