一种基于时间序列分解的短时交通流预测方法与流程

文档序号:20760021发布日期:2020-05-15 17:58阅读:321来源:国知局
一种基于时间序列分解的短时交通流预测方法与流程
本发明涉及智能交通控制
技术领域
,具体为一种基于时间序列分解的短时交通流预测方法。
背景技术
:随着国民经济的快速发展和城市化水平的提高,城市内部交通问题越来越突出并时时刻刻影响着城市居民的出行。为了缓解城市内部交通拥堵,提升人们出行的质量,作为城市交通智能化和信息化的载体的智能交通系统被提出并开始应用于城市交通管理中。而交通流则是智能交通系统能够感知的最直接和最基础的交通状态,交通流预测自然就成为了智能交通系统的研究热点。精准的交通流预测不仅仅可以直接预测未来道路交通流量的变化,为城市居民出行的路径规划提供参考依据,还能够用于分析道路交通流演化转态,为政府交通管理部分提供交通管控依据,诱导路网交通流量均衡分布。现有短时交通流的预测模型主要包括两大类:一类是以线性回归、移动平均、arima(autoregressiveintegratedmovingaverage)模型等为代表的参数回归模型;另一类是以支持向量回归(supportvectorregression,svr)、人工神经网络(artificialneuralnetwork,ann)、长短期记忆网络(longshort-termmemory,lstm)等为代表的非参数回归方法。这些预测模型都已有大量研究,并且都已经成功的应用于短时交通流预测之中。为了进一步提高预测的精确度,近年来,一些研究则致力于寻找组合的预测模型,诸如此类的理论和实验研究都表明组合预测方法能够提高预测结果的精确度。本发明则提出了一种基于时间序列分解的短时交通流预测方法。技术实现要素:为了可以将交通流序列分解为趋势、周期和残差3个成分,然后建立合适的模型对这3个成分单独训练并预测,最后将这3个成分的预测结果相加,作为最终的预测结果,本发明提供一种基于时间序列分解的短时交通流预测方法,它通过时间序列分解方法将交通流序列分解为趋势、周期和残差3个成分,再建立合适的模型对这3个成分单独训练并预测,最后将预测结果相加,作为最终的预测结果,为达此目的,本发明提供一种基于时间序列分解的短时交通流预测方法,通过时间序列分解方法将交通流序列分解为趋势、周期和残差3个成分,再建立合适的模型对这3个成分单独训练并预测,最后将这3个成分的预测结果相加,作为最终的预测结果,其包括以下6个步骤:(1)选择需要预测的道路断面,采集道路断面的交通流数据;(2)通过时间序列分解方法,将交通流序列分解为趋势、周期和残差3个成分;(3)对趋势成分和残差成分建立合适的预测模型,并进行模型训练;(4)通过动态分解方法,将新观测的交通流数据分解为趋势、周期和残差3个成分;(5)基于已训练好的预测模型,对趋势、周期和残差3个成分单独预测;(6)对趋势、周期和残差3个成分的预测结果相加,作为最终的预测结果。作为本发明进一步改进,所述交通流历史数据为交通流量、车辆平均速度或其他交通状态指标所组成的时间序列。作为本发明进一步改进,步骤二将历史交通流序列分解为趋势、周期和残差3个成分具有以下步骤:(1)定义采集的交通流序列为y(t),周期长度为c,周期数量为m,则交通流序列y(t)的样本数量为mc,初始化趋势分量t(t)=0,t=1,2,...,mc;(2)去趋势,用原始交通流序列y(t)减去趋势分量t(t),得到去趋势的时间序列即:(3)周期子序列平滑,对每个周期子序列作k为m/2的loess,并分别向前和向后各延展一个周期,即:对自变量为x=[1,2,3,4,..,m]τ,因变量为周期子序列y=[y(c),y(c+c),y(2c+c),...,y((m-1)c+c))],基于loess求x=[0,1,2,3,4,..,m,m+1]τ时对应的估计值再把所有周期子序列的loess估计值按照时间先后重组成临时时间序列其中,周期子序列sc(t)={y(c),y(c+c),y(2c+c),...,y((m-1)c+c))},c=1,2,...,c指在每个周期同一位置组成的时间序列;(4)周期子序列的低通量过滤,对步骤(c)得到的依次做长度为c、c和3的移动平均,然后再做k=c的loess,得到时间序列l(t),t=1,2,...,mc;(5)去平滑周期子序列趋势,用步骤(c)得到的减去步骤(d)得到的l(t),即:计算周期分量,依据步骤(e)得到的f(t),首先计算单个周期的周期分量q(t),t=1,2,...,c然后把将q(t)扩展c个周期,得到周期分量p(t),t=1,2,...,mc(6)去周期,用原始交通流序列y(t)减去步骤(e)得到周期分量p(t),得到去周期的时间序列即:(7)计算趋势分量,对步骤(f)得到的去周期的时间序列做k=c的loess,得到趋势分量t(t);(8)终止条件判断,若满足终止条件,则执行下一步骤(9),否则继续执行步骤(2)至(7);(9)计算残差分量,用原始序列y(t)减去趋势分量t(t)和周期分量p(t),得到残差分量r(t),即:r(t)=y(t)-t(t)-p(t)。作为本发明进一步改进,步骤三模型需选择能够实现回归任务的预测模型,如支持向量机、人工神经网络及长短期记忆网络,并使用趋势成分和残差成分分别训练对应的模型,设通过趋势序列和残差序列训练好的模型分别为ft(x)和fr(x)。作为本发明进一步改进,步骤四将新观测的交通流数据分解为趋势、周期和残差3个成分,其具有以下步骤:(1)计算周期分量,根据zt所在周期的位置和单周期分量q(t),计算其周期分量pt;(2)去周期,用原始观测值zt减去周期分量pt得到去周期数值(3)计算趋势分量,把附加到的尾部,并做loess求该点的估计值,得到趋势分量tt;计算残差分量,用原始观测序列zt减去趋势分量tt和周期分量pt,得到残差分量rt,即:rt=zt-tt-pt。作为本发明进一步改进,步骤五对趋势、周期和残差3个成分单独预测,其具有以下步骤:(1)趋势成分预测,基于权利要求4中训练好的模型ft(x)和权利要求5中动态分解的结果,对趋势成分进行预测:其中n表示趋势预测模型ft(x)需要输入数据的步长。并通过回代的方法实现多步向前预测:…(2)周期成分预测,由于周期成分具有周期性,依据权力要求3中分解得到的单周期的周期分量q(t),计算周期成分的预测值同样可以实现多步预测:…(3)残差成分预测,与趋势成分预测原理相同,基于权利要求4中训练好的模型fr(x)和权利要求5中动态分解的结果,对趋势成分进行预测:其中n表示残差预测模型fr(x)需要输入数据的步长。并通过回代的方法实现多步向前预测:作为本发明进一步改进,步骤六对趋势、周期和残差3个成分的预测结果相加,作为最终的预测结果:…。与现有技术相比,本发明的有益效果是:本发明基于时间序列分解方法对常规预测模型进行改进,通过时间序列分解算法,可以将交通流序列分解为趋势、周期和残差3个部分,再对这3个部分分别建立预测模型实现预测,可以显著提高短时交通流预测结果的精确度。附图说明图1为本发明的总体流程图;图2为实施例1时间序列分解结果;图3为实施例1预测结果的mse;图4为实施例1预测结果的mae;图5为实施例1预测结果的mape。具体实施方式下面结合附图与具体实施方式对本发明作进一步详细描述:本发明提供一种基于时间序列分解的短时交通流预测方法,它通过时间序列分解方法将交通流序列分解为趋势、周期和残差3个成分,再建立合适的模型对这3个成分单独训练并预测,最后将预测结果相加,作为最终的预测结果。具体技术方案如下:一种基于时间序列分解的短时交通流预测方法,其包括以下步骤,具体总体流程图如图1所示:(1)选择需要预测的道路断面,采集道路断面的交通流数据;(2)通过时间序列分解方法,将交通流序列分解为趋势、周期和残差3个成分;(3)对趋势成分和残差成分建立合适的预测模型,并进行模型训练;(4)通过动态分解方法,将新观测的交通流数据分解为趋势、周期和残差3个成分;(5)基于已训练好的预测模型,对趋势、周期和残差3个成分单独预测;(6)对趋势、周期和残差3个成分的预测结果相加,作为最终的预测结果。进一步的,步骤(1)中所述交通流数据可以为交通流量、平均速度或其他交通状态指标所组成的时间序列。进一步的,步骤(2)中所述时间序列分解方法,将交通流序列分解为趋势、周期和残差3个成分,具体步骤如下:(a)定义步骤(1)中所采集的交通流序列为y(t),周期长度为c,周期数量为m,则交通流序列y(t)的样本数量为mc,初始化趋势分量t(t)=0,t=1,2,...,mc;(b)去趋势,用原始交通流序列y(t)减去趋势分量t(t),得到去趋势的时间序列即:(c)周期子序列平滑,对每个周期子序列作k为m/2的loess,并分别向前和向后各延展一个周期,即:对自变量为x=[1,2,3,4,..,m]τ,因变量为周期子序列y=[y(c),y(c+c),y(2c+c),...,y((m-1)c+c))]t,基于loess求x=[0,1,2,3,4,..,m,m+1]τ时对应的估计值再把所有周期子序列的loess估计值按照时间先后重组成临时时间序列其中,周期子序列sc(t)={y(c),y(c+c),y(2c+c),...,y((m-1)c+c))},c=1,2,...,c指在每个周期同一位置组成的时间序列,如附图所示。其中,loess英文全称为locallyweightedregression,中文翻译为局部加权回归,是一种非参数回归方法;如附图4所示,xi的估计值由距离xi最近的k个点加权得到,k为loess需要指定的参数:上式中wk表示邻近点yk的权重,计算公式如下:上式中,d(x)为epanechnikov核函数,函数形式如下:λ为epanechnikov核函数的核宽度,表示xi与其第k近的点的x[k]距离:λ=|xi-x[k]|(d)周期子序列的低通量过滤,对步骤(c)得到的依次做长度为c、c和3的移动平均,然后再做k=c的loess,得到时间序列l(t),t=1,2,...,mc;(e)去平滑周期子序列趋势,用步骤(c)得到的减去步骤(d)得到的l(t),即:计算周期分量,依据步骤(e)得到的f(t),首先计算单个周期的周期分量q(t),t=1,2,...,c然后把将q(t)扩展c个周期,得到周期分量p(t),t=1,2,...,mc(f)去周期,用原始交通流序列y(t)减去步骤(e)得到周期分量p(t),得到去周期的时间序列即:(g)计算趋势分量,对步骤(f)得到的去周期的时间序列做k=c的loess,得到趋势分量t(t);(h)终止条件判断,若满足终止条件,则执行步骤(i),否则继续执行步骤(b)至(h);(i)计算残差分量,用原始序列y(t)减去趋势分量t(t)和周期分量p(t),得到残差分量r(t),即:r(t)=y(t)-t(t)-p(t)通过步骤(a)至(i),历史交通流序列可以y(t)被分解为趋势序列t(t)、周期序列p(t)和残差序列r(t)3个成分相加。进一步的,步骤(3)中所述的对趋势序列和残差序列分别建立合适的预测模型,需要选择可以实现回归任务的预测模型,如支持向量机(supportvectorregression,svr)、人工神经网络(artificialneuralnetwork,ann)、长短期记忆网络(longshort-termmemory,lstm)等,并使用趋势成分和残差成分分别训练对应的模型。设通过趋势序列和残差序列训练好的模型分别为ft(x)和fr(x)进一步的,步骤(4)中所述通过动态分解方法,将新观测的交通流数据分解为趋势、周期和残差3个成分,具体包括以下步骤:(a)计算周期分量,根据zt所在周期的位置和单周期分量q(t),计算其周期分量pt;(b)去周期,用原始观测值zt减去周期分量pt得到去周期数值(c)计算趋势分量,把附加到的尾部,并做loess求该点的估计值,得到趋势分量tt;(d)计算残差分量,用原始观测序列zt减去趋势分量tt和周期分量pt,得到残差分量rt,即:rt=zt-tt-pt通过步骤(a)至(d),交通流的实时观测值zt可以被动态的分解为趋势分量tt和周期分量pt,得到残差分量rt3个部分相加。进一步的步骤(5)所述基于已训练好的预测模型,对趋势、周期和残差3个成分单独预测,具体包括以下步骤:(a)趋势成分预测,基于步骤(3)中训练好的模型ft(x)和步骤(4)中动态分解的结果,对趋势成分进行预测:其中n表示趋势预测模型ft(x)需要输入数据的步长。通过回代的方法实现多步向前预测:…(b)周期成分预测,由于周期成分具有周期性,依据步骤(2)中分解得到的单周期的周期分量q(t),计算周期成分的预测值:其中mod表示求余数。同样可以实现多步预测:…(c)残差成分预测,与趋势成分预测原理相同,基于步骤(3)中训练好的模型fr(x)和步骤(4)中动态分解的结果,对趋势成分进行预测:其中n表示残差预测模型fr(x)需要输入数据的步长。通过回代的方法实现多步向前预测:…进一步的,步骤(6)所述对趋势、周期和残差3个成分的预测结果相加,作为最终的预测结果:…即为交通流最终预测结果。实施例1:(1)选择需要预测的道路断面,采集道路断面的交通流数据;本实施例所采集的交通数据来源美国明尼苏达大学公开的明尼苏达州高速公路交通流数据集,采集的监测点为s776,采集的交通流序列为5分钟间隔的交通流量,采集的时间为2018年9月17日至10月26日工作日(每周的周一到周五)共30天的全天24小时交通流量。采集样本序列共5760个,其中前4周(共5760条)的数据用于时间序列分解并训练模型,后2周(共2880条)作为实时观测数据用于动态分解并实现预测。所采集的样本如附图2中原始序列所示。(2)通过时间序列分解方法,将前4周的交通流序列分解为趋势、周期和残差3个成分,具体实施步骤如下:(a)定义步骤(1)中所采集的交通流序列为y(t),周期长度为c=288,周期数量为m=20,则交通流序列y(t)的样本数量为5760,初始化趋势分量t(t)=0,t=1,2,...,5760;(b)去趋势,用原始交通流序列y(t)减去趋势分量t(t),得到去趋势的时间序列即:(c)周期子序列平滑,对每个周期子序列作k=10的loess,并分别向前和向后各延展一个周期,即:对自变量为x=[1,2,3,4,..,20]τ,因变量为周期子序列y=[y(c),y(288+c),y(2×288+c),...,y(19×288+c))]t,基于loess求x=[0,1,2,3,4,..,20,21]τ时对应的估计值再把所有周期子序列的loess估计值按照时间先后重组成临时时间序列其中,周期子序列sc(t)={y(c),y(288+c),y(2×288+c),...,y(19×288+c))},c=1,2,...,288指在每个周期同一位置组成的时间序列。(d)周期子序列的低通量过滤,对步骤(c)得到的依次做长度为288、288和3的移动平均,然后再做k=288的loess,得到时间序列l(t),t=1,2,...,5760;(e)去平滑周期子序列趋势,用步骤(c)得到的减去步骤(d)得到的l(t),即:计算周期分量,依据步骤(e)得到的f(t),首先计算单个周期的周期分量q(t),t=1,2,...,288然后把将q(t)扩展c个周期,得到周期分量p(t),t=1,2,...,5760(f)去周期,用原始交通流序列y(t)减去步骤(e)得到周期分量p(t),得到去周期的时间序列即:(g)计算趋势分量,对步骤(f)得到的去周期的时间序列做k=288的loess,得到趋势分量t(t);(h)循环终止条件判断,设置循环次数为3,若循环次数大于3,则执行下一步骤(i),否则继续执行先前步骤(b)至(h);(i)计算残差分量,用原始序列y(t)减去趋势分量t(t)和周期分量p(t),得到残差分量r(t),即:r(t)=y(t)-t(t)-p(t)通过步骤(a)至(i),历史交通流序列可以y(t)被分解为趋势序列t(t)、周期序列p(t)和残差序列r(t)3个成分相加。前4周的交通流序列分解的结果如附图2历史数据所示。(3)对趋势成分和残差成分建立合适的预测模型,并进行模型训练;为了验证本发明选择预测模型的通用性,本实施例选择了3种现有研究中常用的预测模型,分别为:支持向量机(supportvectorregression,svr)、人工神经网络(artificialneuralnetwork,ann)和长短期记忆网络(longshort-termmemory,lstm),并使用趋势成分和残差成分分别训练对应的模型。优选的,在模型训练时,输入数据的步长n=12。设通过趋势序列和残差序列训练好的模型分别为ft(x)和fr(x)(4)通过动态分解方法,将后2周的交通流序列动态的分解为趋势、周期和残差3个成分,具体实施步骤如下:(a)计算周期分量,根据zt所在周期的位置和单周期分量q(t),计算其周期分量pt;(b)去周期,用原始观测值zt减去周期分量pt得到去周期数值(c)计算趋势分量,把附加到的尾部,并做loess求该点的估计值,得到趋势分量tt;(d)计算残差分量,用原始观测序列zt减去趋势分量tt和周期分量pt,得到残差分量rt,即:rt=zt-tt-pt通过步骤(a)至(d),交通流的实时观测值zt可以被动态的分解为趋势分量tt和周期分量pt,得到残差分量rt3个部分相加。后2周交通流序列动态分解的结果如附图2中的观测数据所示。(5)基于已训练好的预测模型,对趋势、周期和残差3个成分单独预测;优选的,本实施例选择多步向前的预测步长为6;(a)趋势成分预测,基于步骤(3)中训练好的模型ft(x)和步骤(4)中动态分解的结果,对趋势成分进行预测:并通过迭代的方法实现多步向前预测:…(b)周期成分预测,由于周期成分具有周期性,依据步骤(2)中分解得到的单周期的周期分量q(t),计算周期成分的预测值:…其中mod表示求余数。(c)残差成分预测,与趋势成分预测原理相同,基于步骤(3)中训练好的模型fr(x)和步骤(4)中动态分解的结果,对趋势成分进行预测:…(6)对趋势、周期和残差3个成分的预测结果相加,作为最终的预测结果:…即为交通流最终预测结果。在本实施例中,将采用本发明时间序列分解的预测方法的模型分别记为tsd-svr、tsd-ann和tsd-lstm,为了比较本发明预测的精确度,选择传统的预测方法svr、ann和lstm作为对比。为保证模型对比的公平性,各模型的参数设置过程如下:优选的,所有的svr模型(包括传统的svr模型、tsd-svr中的趋势成分预测模型和tsd-svr中的残差成分预测模型)均采用“rbf”核函数,采用网格搜索交叉验证的方法标定超参数,标定结果如下:常规svrtsd-svr趋势成分tsd-svr残差成分核函数的系数γ1100.001惩罚系数c100.0110宽度系数ε0.010.00010.001优选的,所有的ann模型(包括传统的ann模型、tsd-ann中的趋势成分预测模型和tsd-ann中的残差成分预测模型)均采用的与下表相同的网络结构,且其他参数设置也保持一致:批大小(batchsize)为256,迭代次数(epochs)为300,损失函数(lossfunction)为mse,以及学习速率(learningrate)为0.001的adam优化算法。层类型激活函数神经元个数输入层input-12隐含层1densesigmoid24隐含层2densesigmoid12输出层densesigmoid1优选的,所有的lstm模型(包括传统的lstm模型、tsd-lstm中的趋势成分预测模型和tsd-lstm中的残差成分预测模型)均采用的与下表相同的网络结构,且其他参数设置也保持一致:批大小为256,迭代次数为300,损失函数为mse,以及学习速率为0.001的adam优化算法。层类型激活函数神经元个数输入层input-12隐含层1lstmrelu24隐含层2denserelu12输出层densesigmoid1优选的,本实施例采用平均平方误差(meansquareerror,mse)、平均绝对误差(meanabsoluteerror,mae)和平均相对误差(meanabsolutepercentageerror,mape),评估各个模型预测结果的精确度,计算公式如下:其中表示预测值,yi表示实际值。上述6种模型对6个步长总的预测结果如下表所示:msemaemapetsd-svr779.1020.389.23%svr1244.6425.6012.15%误差减少37.40%20.36%24.05%tsd-ann834.3321.3610.91%ann1852.4932.1217.81%误差减少54.96%33.50%38.76%tsd-lstm825.5221.2610.97%lstm1454.4927.6312.58%误差减少43.24%23.04%12.81%从上表中可以看出,对比常规的svr预测模型,基于本发明提出的时间序列分解模型tsd-svr预测结果的mse、mae和mape误差分别减少了37.40%、20.36%和24.05%;对比常规的ann预测模型,基于本发明提出的时间序列分解模型tsd-ann预测结果的mse、mae和mape误差分别减少了54.96%、33.50%和38.76%;对比常规的lstm预测模型,基于本发明提出的时间序列分解模型tsd-lstm预测结果的mse、mae和mape误差分别减少了43.24%、23.04%和12.81%,说明本发明基于时间序列分解的短时交通流预测方法能够有效的提高预测结果的精确度。多步预测结果的mse、mae和mape误差对比如附图3、附图4和附图5所示,从图中可以看出,本发明提出基于时间序列的短时交通流预测算法tsd-svr、tsd-ann和tsd-lstm相比于常规的预测算法svr、ann和lstm,在短时交通流多步向前预测任务中,能够显著降低误差。以上结果表明本发明基于时间序列分解的短时交通流预测方法能够有效提高预测结果的精确度。实施例1结束。以上所述,仅是本发明的较佳实施例而已,并非是对本发明作任何其他形式的限制,而依据本发明的技术实质所作的任何修改或等同变化,仍属于本发明所要求保护的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1