APP下载

基于多时间尺度RNN的时序数据预测

2018-07-25林永峰

计算机应用与软件 2018年7期
关键词:时间尺度客流量旅客

李 洁 林永峰

(国网天津市电力公司电力科学研究院 天津 300380)

0 引 言

时间序列数据是在各种生产生活领域中广泛出现的数据类型。它反映了事物或者行为等随着时间的推移而产生的状态变化和发展规律,例如天气变化情况,电力负荷变化的变化情况,特定区域人口的流动的变化情况等。由于时间序列数据在人们的生产生活中是普遍存在的,因此对时序数据的预测也是很多研究工作的重点问题。时间序列预测即根据已知的时间序列所反映出的发展过程和规律,通过特定的预测模型进行拟合,从而预测其未来的变化趋势的方法。换句话说就是根据已知的可观测事件来预测将来发生的事件。时间序列预测方法是模拟时序数据的一种基本方法[1],构建准确的时间序列预测模型有助于资源调度与管理、社会安全保障以及避免资源浪费等,在现实生活中着重大的意义。

现有的时序数据预测方法多是在单一的时间尺度上进行分析的,这种方式适用于模拟时间序列的短期依赖,而对于长期的趋势性与周期缺乏对应的解决策略。而Zhang等[2]指出时序数据的变化规律不是单一的,而是具有短期性、周期性和趋势性的,因此需要从多个时间尺度对其未来的发展趋势进行分析。

针对以上问题,本文以民航旅客出行情况为研究对象,基于真实的国内机场旅客出行记录数据,对旅客的出行规律和特点进行了深入的分析。采用了基于后向传播算法的循环神经网络(RNN)模型对其进行建模。并根据数据的时序特点建立基于多种时间尺度的预测模型,从而对未来时段旅客的出行情况进行分析和预测,提升预测的准确性。

1 相关工作

在气象、交通、农业、商业以及各种新型产业等行业经常会产生一些关于时间序列的数据,对这些数据进行挖掘分析已经越来越重要。现实生活中,通过观测一系列时间序列数据来进行研究是司空见惯的活动,比如在交通运行上,我们会观测客流量、高峰期、低谷期等。在商业上,我们会观测日股票闭盘价、周利率等[3]。受市场和利益驱动,各个领域的研究热点都已经包括了对时间序列的预测。国内外许多学者提出了相对准确和适应能力强的预测法。

很多学者在对时间序列进行预测时对很多经典算法进行了改进。寇茜茜等[4]将栈式自编码器和神经网络相结合,提出了对汇率的时间序列更有效的预测模型。葛志远等[5]基于遗传规划方法,建立了关于时序的自适应模型,有助于适应性能的提高。尧姚等[6]对ARIMA模型和BP网络模型在时间序列预测上的特点进行分析比较, 提出了ARIMA-BP组合模型,对旅客运输量的时间序列进行较为准确的预测。陈竹等[7]通过使用小波分解对时间序列进行分解重构为俩部分,分别利用LSSVM模型和ARIMA模型进行预测,得到较好的预测结果。孙莹等[8]通过分析3G人群上网数据,对学习基站人群的时空分布特征及影响因素进行分析研究,提出了具有更高效率的时空序列预测模型。

还有一些学者利用机器学习支持向量机方法,提出了适合某个领域的预测模型,来提高时间序列预测准确率。孙友强等[9]建立了基于Granger因果关系挖掘的支持向量机回归模型,使得对多变量时间序列的预测更为精准,也在一定程度减少了参加运算的序列。Cao等[10]在时间序列的预测中使用了支撑向量机和它的改进算法,取到了很好的效果。

另一方面,一些研究人员也做过一些使用神经网络来预测模型的研究。孙延风等[11]将神经网络用在对股票的涨幅预测上,促进了金融行业的发展,使得预测效果更准确。徐薇等[12]使用线性回归,利用统计学方法和神经网络对铁路客流的时序和空间属性建模的结果结合起来得到预测模型,使预测精度得到改善。Zheng等[13]基于城市地图人群流动的时间属性和特有规律进行了分析,利用残差模型来对城市范围内的人群流动进行预测。Yasdi等[14]仅使用交通流量这一个参数,基于时间序列,使用循环神经网络进行短期交通流量预测。

针对以上相关工作,本文基于民航旅客流量预测的任务,选择可以捕获时间序列特征的基于后向传播算法的循环神经网络(RNN)模型。同时考虑到该数据具有其独特的周期性和趋势性,因此根据数据的不同时间尺度进行建模, 对旅客出行行为的长期性特征、短期性特征以及周期性特征进行捕获,使得时间序列预测的准确率得到提升。

2 基于后向传播算法的多时间尺度RNN预测模型

2.1 循环神经网络(RNN)

循环神经网络是一种对序列数据进行建模的神经网络,它像一个循环动态系统,在该结构中当前的输出会流入下一步的输入中,为下一次输出做出贡献。其主要形式是该结构有个循环结构会保留前一次循环的输出结果并作为下一次循环输人的一部分输入。

和其他神经网络相比,RNN具有一定的优势。固定大小的输入输出是普通神经网络的的一个局限,例如,输入输出都为一张图的向量。而RNN在这方面表现较好,序列可以成为该结构的输入输出。例如,输入一句评语,输出情绪分类;输入一段话,输出主题序列。图1为循环神经网络结构图。

图1 循环神经网络结构

循环神经网络通常是由输入层、输出层、隐藏层三部分构成的。在RNN中,参数U、V、W在该循环结构的每一次输入中都会被共享,因为RNN是个循环系统,使得神经网络中需要学习的参数得到很大程度的降低。隐藏层对于RNN来说是最为重要的,主要用于对序列的信息捕获,最为主要的工作都是由它来实现的。其主要的工作原理如下:

st=fs(Wst-1+Winxt)

(1)

ot=fo(Woutst)

(2)

式中:Wst-1,Win,Wout都是矩阵,主要起连接作用,分别用在隐藏层节点的自连接,输入层到隐藏层和权值连接以及输出层到隐藏层的权值连接;xt和ot分别表示为第t步的输入和输出,而第t-1步和第t步隐藏层的输出则分别表示为s(t-1),st,fs和fo都为激活函数,分别属于隐藏层和输出层。激活函数是该结构对非线性问题解决的重要部分,在保留特征、去除冗余数据等方面起到很大的作用。

和传统ANN一样,在 RNN的训练过程中也会使用误差反向传播算法,但不同的是,在RNN的网络结构中可以共享一些参数,这就可以减少对参数的学习,这是该神经网络的特征之一,而其他传统ANN所没有的。除此之外,在梯度下降算法的计算过程中,RNN每一步的输出不仅和当前的网络状态有关,而且与之前的网络状态有关联。

2.2 基于多时间尺度的RNN 预测模型

考虑到时间序列数据具有其独特的变化特点,因此需要对其设计具有针对性的建模方案。以机场旅客流量预测为例,旅客的出行记录反映出各个机场旅客的行为规律,而根据直观认知,机场未来时段的客流量与之前几天的客流量相关。此外,各机场旅客流量也可能具有一定的周期性,例如每周机场流量的变化具有一定的规律性。此外各机场流量也可能具有一定的长期的时间依赖,例如机场的客流量在每个月或每个季度整体上具有一定的长期趋势变化。针对机场客流量在短期、周期、长期三种不同时间尺度上的时间依赖关系,本文使用一种基于多时间尺度的RNN预测模型。同时考虑多个时间尺度下的依赖关系,从而对未来时段的机场客流量进行更加全面的预测分析。

基于多时间尺度的RNN模型的整体结构如图2所示。

图2 多尺度RNN模型架构

多尺度RNN模型主要由3个部分组成,对应于时间的短期性依赖、周期性依赖和长期性依赖的建模。在每一部分中,使用可以捕获时序依赖的RNN模型对各机场旅客流动情况进行拟合,Sigmoid函数为激活函数。最后将多个时间尺度对应部分的输出结果进行加权融合,得到多尺度RNN模型的最终结果。

3 实 验

3.1 数据简介

本文使用的数据来自民航2010年至2011年的旅客出行记录,数据包括起飞机场、抵达机场、旅客ID、起飞日期、起飞时间等属性。为了对民航旅客流量进行分析与预测,要对海量的原始数据进行处理,包括数据合并,去除无效记录以及去除稀疏记录等。

本文中,航线由起飞机场和到达机场唯一确定。根据数据的起飞日期、起飞机场和到达机场计算出每条航线每日的客流量。由于有部分机场航班数量较少,导致整个矩阵过于稀疏,为了使方法更有针对性和现实意义,因此在实验过程中去掉航线数量较少的机场,最终保留62个机场的旅客出行数据。数据的时间范围为2010.01.01到2011.12.31,共730天的出行记录。我们使用最后5天的数据作为测试数据,其余数据作为训练数据。

3.2 数据分析

从几个方面来对民航旅客的出行规律进行研究,从而验证本文所使用的方法的合理性。

首先考虑民航旅客在时间上的短期性。图3为民航旅客流量在相邻的不同的时间间隔下相关性的变化情况。图中x轴代表两个时间段之间的时间间隔,y轴代表对应时间间隔客流量的比值。从图中可以看出,时间间隔较小的时候旅客流量的比值越趋近于1,即对应时段的客流量情况越相似。由此可知本文方法中对短期时间依赖的假设是合理的,相邻时间的历史出行情况对于未来时段的流量预测具有较大的影响,这与现实生活中的经验是相符的。

图3 短期相关性

其次,考虑民航旅客流量在时间上的周期性。根据经验,客流量在连续工作日的表现可能相近,而在周末与工作日相比表现应有一定差别。同时,机场航班安排相对固定,故有理由推测民航旅客流量在普通工作周应体现出一定的相似性。图4为经过单位化处理的全国民航旅客流量示意图。可以看出,全国民航旅客流量的波动趋势在两年中具有一定的相似性,并且存在明显的以星期为单位的周期性波动,并在全国法定节假日期间出现明显变化。单一航线客流量的波动情况也有与总体类似的规律,如图5所示。由于出行记录具有明显的周期规律,因此可以看出对于周期性时间依赖的建模是非常有必要的。

图4 2010年和2011年全国民航旅客流量

图5 2010年和2011年单一航线日客流量

最后,考虑民航旅客流量在时间上的长期性特征。图6为各机场旅客平均流量在2010年每个月相同日期上的变化情况。可以看出,随着时间的推移,客流量整体上具较为明显的变化趋势,民航旅客的出行情况在较长的时间跨度下具有一定的趋势性变化,因此同样需要对长期的时间依赖关系进行建模。

图6 长期性时间依赖

从以上分析可以看出,本文所使用的基于多时间尺度的RNN预测模型的结构是合理的。下面将通过实验验证本文方法的有效性。

3.3 实验设置

在RNN的输出中,使用Sigmoid函数作为激活函数。此处使用Python库,包括Pybrain等来建立模型。本文使用5天的出行记录数据作为测试集,其余的数据作为训练集训练模型。之后,继续在全部训练数据上继续训练模型,固定的训练步数为100,学习率为0.02,设置窗口为5天,即每5天预测后5天。本文基于具有固定时间间隔数的整个训练集继续对模型进行训练,根据观察到的规律,将p设置为一周,将t设置为一月。

3.4 对比方法

为了证明本文所述方法的预测性能,本文将该模型与其他几种方法的实验效果进行了对比,选择的方法如下:

1) 历史平均值模型(HA):通过对训练集中历史出行行为平均值预测民航旅客流量。

2) 自回归模型(AR):自回归模型是通过对随机变量历史观测值的线性组合,来对其未来某时刻的观测值进行预测的线性回归模型,AR模型是时间序列预测任务中使用最为广泛的模型之一。

3) 自回归移动平均模型(ARIMA):全称为自回归积分滑动平均模型。与AR模型不同,ARIMA模型可以处理非平稳的时间序列,是最常用的时间序列预测模型之一。

4) BP神经网络(BP): BP神经网络是一种按照误差逆向传播算法训练的多层前馈神经网络,它是目前最具影响力的神经网络之一。

5) 循环神经网络(RNN):又称为递归神经网络,它是一种对序列数据进行建模的神经网络,常用于自然语言处理研究中。

6) 基于多时间尺度的循环神经网络(MTRNN): 本文所使用的时序数据预测方法,即对不同的时间尺度,利用循环神经网络进行建模,最后对各部分的结果进行加权融合。

3.5 评价指标

本文使用均方根误差(RMSE)来评估模型:

(3)

3.6 实验结果

本文使用基于多时间尺度的RNN预测模型分别对旅客出行情况的短期性时间依赖、周期性时间依赖和长期性时间依赖进行建模,从而对未来时段各个机场的客流量情况进行预测

表1展示了本文所使用的基于多时间尺度的RNN模型与其他基准模型的预测效果对比。可以看出,本文所使用的多时间尺度RNN模型优于其他对比方法,取得了最好的预测效果,该模型能够较为准确的拟合旅客的出行行为。

表1 基准模型和MTRNN的实验结果对比

此外还可以看到,HA方法效果要远低于其他时间序列模型,这是由于HA仅以历史均值进行预测,忽略的数据随时间的波动情况。整体上看神经网络模型的预测效果优于时间序列模型,这证明了本文以原始RNN模型作为基础模型进行时间尺度上的改进是具有合理性的。此外时间序列模型需要对每条航线建立一个预测模型,这种方法并不利于计算和存储。而在神经网络模型中RNN的预测效果优于BP神经网络,这说明相比于BP神经网络,RNN更加能够捕获到时间序列数据的时序特征,适合时序数据的分析与预测。而本文所使用的方法取得了最好的预测效果,这说明本文所提出的假设是具有合理性的。即未来时段的民航旅客客流量不仅与其相邻的历史时段出行行为有关,而且与其他时段的出行行为也有较高的相关性,这说明民航旅客客流量不仅具有短期性时间依赖,它还具有一定的周期性和长期性时间依赖。利用这种周期性和趋势性,对于旅客流量产生突变的时刻也能较好地拟合旅客的出行行为。

4 结 语

在大数据的背景下,时序数据的预测问题在很多领域的研究中都占据十分重要的地位,并且具有很重要的现实意义。本文以民航旅客流量预测任务为切入点,对旅客的出行特点以及出行规律进行深入的分析,并根据出行数据的短期时间依赖、周期性时间依赖和长期性时间依赖,建立基于多时间尺度的循环神经网络预测模型来对旅客出行的短期性、周期性和趋势性进行建模,提升了模型的预测精度。

影响民航旅客出行情况的因素有很多,由于缺乏地理、气温、节假日等外部因素信息,本文所使用的模型还具有一定的局限性,可能对模型预测准确率有一定程度的影响。在后续的研究工作中将对模型进行进一步的改进,以达到更好的预测效果。

猜你喜欢

时间尺度客流量旅客
CaputoΔ型分数阶时间尺度Noether 定理1)
基于数据挖掘的景区客流量预测模型研究
非常旅客意见簿
交直流混合微电网多时间尺度协同控制
时间尺度上非迁移完整力学系统的Lagrange 方程与Nielsen 方程
候车大厅的旅客
时间尺度上完整非保守力学系统的Noether定理
地铁开,玩起来
基于灰色预测理论在交通枢纽客流量的实际应用
基于灰色预测理论在交通枢纽客流量的实际应用