技术领域
本发明属于时间序列预测技术领域,具体涉及一种基于CNN-LSTM神经网络模型与ARIMA模型的时间序列预测方法及系统。
背景技术
在实际生产和科学研究中,时间序列是按照时间排序的一组随机变量,它通常是在相等间隔的时间段内依照给定的采样率对某种潜在过程进行观测的结果。时间序列数据本质上反映的是某个或者某些随机变量随时间不断变化的趋势,而时间序列预测方法的核心就是从数据中挖掘出这种规律,并利用其对将来的数据做出估计。时间序列预测应用广泛,与现实生活中多种场景息息相关,例如金融市场的波动趋势分析、工业机构的能源消耗量预测、城市道路的交通流量预测等。现有的时间序列预测方法大多数采用传统线性模型或循环神经网络,传统线性模型非常依赖模型参数的选择,并且难以提取非线性时间序列中的复杂模式以及时间序列中的前后依赖。循环神经网络在处理复杂的多变量时间序列时具有明显的优越性,但由于其内部结构所限,并不能很好的提取到时间序列的周期特征,从而影响预测精度。
发明内容
本发明的目的在于提供一种基于CNN-LSTM神经网络模型与ARIMA模型的时间序列预测方法及系统,以解决现有技术中没有充分提取时间序列的周期特征从而导致预测精度不够的问题。
为达到上述目的,本发明所采用的技术方案是:一种时间序列预测方法,包括:获取待预测的时间序列数据,构建输入样本;将输入样本输入经过训练的基于CNN-LSTM的神经网络模型,得到第一预测结果;将第一预测结果与输入样本的观测值进行比对,得到误差序列;将误差序列输入建立的ARIMA模型对误差序列进行误差修正预测,得到第二预测结果;将第一预测结果和第二预测结果相加得到时间序列的最终预测结果。
进一步地,所述基于CNN-LSTM的神经网络模型,包括时间卷积层、模式提取层和全连接层;所述时间卷积层包括若干层采用因果卷积的卷积神经网络;所述模式提取层包括一个LSTM层和一个skip-LSTM层,所述LSTM层采用双曲正切函数tanh作为激活函数;所述skip-LSTM层是设置了跳跃组件的LSTM层,采用双曲正切函数tanh作为激活函数,所述跳跃组件使每个LSTM细胞直接与下一周期的LSTM细胞相连接;所述时间卷积层同时和所述LSTM层和所述skip-LSTM层相连接;所述全连接层用于将所述LSTM层和所述skip-LSTM层的输出向量转换为预测目标值,包括若干层隐藏层,每层所述隐藏层采用线性整流函数ReLU作为激活函数。
进一步地,所述时间卷积层包括三层采用因果卷积的卷积神经网络,每层所述采用因果卷积的卷积神经网络的卷积核大小为5且不设置池化层。
进一步地,所述LSTM层的隐藏单元数为20。
进一步地,所述全连接层包括三层隐藏层,每层所述隐藏层的隐藏单元数分别为256、64和32。
进一步地,所述基于CNN-LSTM的神经网络模型的训练方法,包括:获取时间序列数据并进行预处理,构建训练样本;将训练样本输入基于CNN-LSTM的神经网络模型,不断优化更新基于CNN-LSTM的神经网络模型的权重矩阵W和全连接层的第i个隐藏层的第j个隐藏单元的偏置矩阵B
进一步地,所述损失函数为:
其中,observed
进一步地,所述预处理包括:用平均值为0且标准差为0.01的高斯分布随机初始化基于CNN-LSTM的神经网络模型的权重矩阵W;初始化B
进一步地,所述ARIMA模型的建立方法包括:通过时序图法对误差序列进行检验,判断误差序列是否属于非平稳时间序列,如误差序列属于非平稳时间序列,则采用差分法对误差序列进行差分,直到得到新的平稳误差序列;计算新的平稳误差序列的自相关函数ACF以及偏自相关函数PACF从而确定使用的模型;自相关系数ACF的计算公式如下:
其中,μ为序列均值,k为序列的滞后次数;
若偏自相关函数不截尾,则采用自回归即AR(p)模型,其定义如下:
其中e
若自相关函数ACF不截尾(落在置信区间内),则采用移动平均MA(q)模型:
其中,q为MA模型的阶数,θ
若自相关函数以及偏自相关函数均不截尾,则采用ARIMA(p,d,q)模型,该模型为自回归与移动平均的结合,其公式定义为:
保存p,d,q的值,完成模型的定阶从而建立ARIMA模型。
一种时间序列预测系统,包括:第一模块,用于获取待预测的时间序列数据作为输入样本;第二模块,用于将输入样本输入经过训练的基于CNN-LSTM的神经网络模型,得到第一预测结果;第三模块,用于将第一预测结果与输入样本的观测值进行比对,得到误差序列;第四模块,用于将误差序列输入建立的ARIMA模型对误差序列进行误差修正预测,得到第二预测结果;第五模块,用于将第一预测结果和第二预测结果相加得到时间序列的最终预测结果。
与现有技术相比,本发明所达到的有益效果:
(1)本发明通过基于CNN-LSTM的神经网络模型,利用带有跳跃组件的长短期记忆网络充分提取时间序列的周期性特征,解决了现有技术中没有充分提取时间序列的周期特征从而导致预测精度不够的问题;
(2)本发明通过基于CNN-LSTM神经网络模型与ARIMA模型,使用ARIMA模型对神经网络预测结果的误差值建模分析,修正预测误差,由于ARIMA模型为线性模型因而能捕捉到时间序列之中的线性特征,弥补了单一使用神经网络从而忽视了时间序列中的线性特征的不足;
(3)本发明所提出的基于CNN-LSTM的神经网络模型,在进行训练之前,首先对时间序列数据进行预处理,其中包含了归一化处理和滑动窗口处理;通过归一化处理,将数据转换至0~1之间,节约了计算资源,加快了神经网络的收敛速度;通过滑动窗口处理使得数据更加平稳。
附图说明
图1是本发明实施例提供的一种基于CNN-LSTM神经网络模型与ARIMA模型的时间序列预测方法的流程示意图;
图2是本发明实施例提供的一种基于CNN-LSTM神经网络模型与ARIMA模型的时间序列预测方法的系统结构示意图;
图3是本发明实施例提供的一种基于CNN-LSTM神经网络模型与ARIMA模型的时间序列预测方法中因果卷积的示意图;
图4是本发明实施例提供的一种基于CNN-LSTM神经网络模型与ARIMA模型的时间序列预测方法中长短期记忆网络的内部单元结构图;
图5是本发明实施例提供的一种基于CNN-LSTM神经网络模型与ARIMA模型的时间序列预测方法中长短期记忆网络在时间维度上的展开图;
图6是本发明实施例提供的一种基于CNN-LSTM神经网络模型与ARIMA模型的时间序列预测方法中ARIMA模型的定阶方法示意图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
实施例一:
一种时间序列预测方法,包括:获取待预测的时间序列数据,构建输入样本;将输入样本输入经过训练的基于CNN(卷积神经网络)-LSTM(长短期记忆人工神经网络)的神经网络模型,得到第一预测结果;将第一预测结果与输入样本的观测值进行比对,得到误差序列;将误差序列输入建立的ARIMA模型(差分整合移动平均自回归模型)对误差序列进行误差修正预测,得到第二预测结果;将第一预测结果和第二预测结果相加得到时间序列的最终预测结果。
本实施例中,基于CNN-LSTM的神经网络模型,包括时间卷积层、模式提取层和全连接层;时间卷积层包括三层采用因果卷积的卷积神经网络,每层网络的卷积核大小为5且不设置池化层;模式提取层包括一个LSTM(长短时记忆网络)层和一个skip-LSTM层,每层LSTM层的隐藏单元数为20;均采用tanh(双曲正切函数)作为激活函数;skip-LSTM层是设置了跳跃组件的LSTM层,采用双曲正切函数tanh作为激活函数,跳跃组件使每个LSTM细胞直接与下一周期的LSTM细胞相连接,从而捕捉时间序列的周期性;时间卷积层同时和LSTM层和skip-LSTM层相连接;全连接层用于将LSTM层和skip-LSTM层的输出向量转换为预测目标值,通过该层进行线性变换之后得到神经网络的预测结果,包括若三层隐藏层,每层隐藏层的隐藏单元数分别为256、64和32且采用线性整流函数ReLU作为激活函数。
如图1~图6所示,本实施例的具体实现步骤如下:
步骤一:使用开源人工神经网络库Kreas搭建基于CNN-LSTM的神经网络模型,按照上述结构设置好模型的参数。
步骤二:对基于CNN-LSTM的神经网络模型进行训练,包括:获取时间序列数据并进行预处理,构建训练样本:
假设获取时间序列数据X={x
其中,x
步骤三:使用窗口大小为P、步长为1的滑动窗口在经过归一化处理后的时间序列X′上滑动,得到窗口序列集W={x′
预处理还包括:用平均值为0且标准差为0.01的高斯分布随机初始化基于CNN-LSTM的神经网络模型的权重矩阵W;初始化B
步骤四:将训练样本输入基于CNN-LSTM的神经网络模型,不断优化更新基于CNN-LSTM的神经网络模型的权重矩阵W和全连接层的第i个隐藏层的第j个隐藏单元的偏置矩阵B
使用划分好的训练样本对CNN-LSTM神经网络模型进行训练,特别地,窗口序列数据将首先进入时间卷积层以提取数据在时间维度上的短期依赖。时间卷积层采用因果卷积以确保输出不会违反数据的顺序,经过三层卷积层后得到特征向量Conv;
步骤五:将特征向量Conv输入到模式提取层,模式提取层由一个LSTM层与一个带有跳跃组件的LSTM层(即skip-LSTM层)所组成,Conv将同时输入至这两层网络进行计算:
LSTM即长短期记忆网络,是一种特殊的RNN(循环神经网络),主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。LSTM的核心部件称作LSTM细胞,LSTM细胞可以通过内部特有的门结构,包括遗忘门,更新门,输出门,来对之前的输入信息进行增加与遗忘。每个细胞之中的内部运算主要依赖于本状态输入的特征向量x
LSTM细胞内部结构如图4所示,现结合图4说明LSTM基本单元状态更新以及结果输出的过程:
(1)特征向量Conv经过遗忘门:
其中,W
(2)在遗忘门中对状态信息进行遗忘后,还需要对状态进行更新写入,更新门就是执行这一操作,其过程如下:
(3)从旧的单元状态c
根据中间变量
(4)每个单元的输出
而传递至下一个单元的隐藏状态值a
LSTM层的参数在时间维度上进行更新,计算过程在时间维度上的展开如图5所示,每个神经元之间共享参数;
特别地,skip-LSTM层为一个设有跳跃组件的LSTM,通过跳跃组件将每个细胞与下一周期的细胞相连接,从而捕捉时间序列之中的周期性规律。其具体工作原理与普通LSTM基本相同,故不再赘述。Skip-LSTM的前向传播过程如下:
其中,M是跳过的细胞的数量,对于具有明显周期性的数据集可使用其周期作为M值。例如纽约电能消耗数据集(以小时作为采样间隔)的M为24,长沙轨道交通流量数据集(以日作为采样间隔)的M为7。
步骤六:将特征提取层的输出结果输入至全连接层进行线性变换从而得到神经网络的预测值,该全连接层共设有三个隐藏层,隐藏单元数量分别为256、64、32。使用线性整流函数(ReLU)作为激活函数,每层网络的前向传播过程如下:
其中,l代表网络的层数,W
其中,observed
步骤七:将神经网络输出的结果序列与观测值进行对比,得到误差序列E={e
通过时序图法对E进行检验,判断E是否属于非平稳时间序列,若E属于非平稳时间序列,则需要采用差分法对E进行差分,直到得到新的平稳序列E′。其中,差分的次数则为模型的参数d;
如图6所示,计算E′的自相关系数ACF以及偏自相关系数PACF从而确定使用的模型。自相关系数ACF的计算公式如下:
其中,μ为序列均值,k为序列的滞后次数。偏自相关系数PACF的计算较为复杂,一般采用最小二乘法;
若偏自相关函数不截尾,则采用自回归即AR(p)模型,其定义如下:
其中e
若自相关函数ACF不截尾(落在置信区间内),则采用移动平均MA(q)模型:
MA模型主要聚焦于AR模型中的误差项的累加,其中,q为MA模型的阶数,θ
若自相关函数以及偏自相关函数均不截尾,则采用ARIMA(p,d,q)模型,该模型为自回归与移动平均的结合,其公式定义为:
保存p,d,q的值,完成模型的定阶从而建立最适合的误差预测模型;
步骤八:保存训练好的神经网络模型以及定阶后的ARIMA模型。对任何与训练模型时使用的序列具有相同特征的时间序列,均可采用上述模型进行预测。具体方法如下:首先将该训练输入至神经网络进行预测并得到结果P′,再使用ARIMA(p,d,q)模型对误差进行修正预测,得到结果P
本实施例所提出的基于CNN-LSTM的神经网络模型,在进行训练之前,首先对时间序列数据进行预处理,其中包含了归一化处理和滑动窗口处理;通过归一化处理,将数据转换至0~1之间,节约了计算资源,加快了神经网络的收敛速度;通过滑动窗口处理使得数据更加平稳。
本实施例通过基于CNN-LSTM的神经网络模型,利用带有跳跃组件的长短期记忆网络充分提取时间序列的周期性特征,解决了现有技术中没有充分提取时间序列的周期特征从而导致预测精度不够的问题;通过基于CNN-LSTM神经网络模型与ARIMA模型,使用ARIMA模型对神经网络预测结果的误差值建模分析,修正预测误差,由于ARIMA模型为线性模型因而能捕捉到时间序列之中的线性特征,弥补了单一使用神经网络从而忽视了时间序列中的线性特征的不足。
实施例二:
基于实施例一所述的时间序列预测方法,本实施例提供一种时间序列预测系统,包括:
第一模块,用于获取待预测的时间序列数据作为输入样本;
第二模块,用于将输入样本输入经过训练的基于CNN-LSTM的神经网络模型,得到第一预测结果;
第三模块,用于将第一预测结果与输入样本的观测值进行比对,得到误差序列;
第四模块,用于将误差序列输入建立的ARIMA模型对误差序列进行误差修正预测,得到第二预测结果;
第五模块,用于将第一预测结果和第二预测结果相加得到时间序列的最终预测结果。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
机译: 时间序列学习系统,时间序列学习方法,时间序列预测系统,时间序列预测方法和程序
机译: 基于异构图神经网络模型的预测方法和系统
机译: 基于非数值时间序列的数值时间序列预测方法