面向多因素影响的混合预测模型
2020-11-02王丽清徐永跃姚寒冰
谢 宇,王丽清,徐永跃,姚寒冰
(云南大学 信息学院,云南 昆明 650091)
0 引 言
在短时交通流的预测研究方面,为了取得更精确的预测结果,有的采用在时间序列历史数据上建立自回归模型AR、移动平均模型MA,以及基于其上的各种组合和变形时间序列模型[1,2]的方法。也有采用基于相空间重构[3]、自适应遗传粒子群优化—加权最小二乘支持向量机[4]、K近邻[5]、神经网络[6,7],以及深度学习的方法[8,9]等智能预测方法。其中,智能预测方法可更好地描述交通流中的非线性、不确定性,但又带来大量数据获取困难,数据去噪、清洗复杂,模型预测失效、算法效率低、计算性能不高等方面的问题。
另一方面,交通流的影响因素复杂而多样,只基于单一因素、特征和模型预测,往往难以描述其它复杂外部环境因素或突发情况的影响,导致预测结果与现实情况的误差增大。
因此,有了混合多种模型进行预测的方法[10-12]。例如:Huang等提出了基于支持向量回归模型与高斯损失函数的短期交通流量预测方法[13]。也有采用建立基于K近邻的交通拥堵指数预测模型,以适应天气、节假日、重大活动对交通拥堵带来的影响[14]。或者在交通指数历史基础数据的基础上,对引入天气和工作日进行回归分析完成短时交通指数的预测[15]。为解决交通流的时空特征,用卷积神经网络CNN进行交通流特征提取,继而结合向量回归分类器SVR进行流量预测[16]。通过采集每周同一天的交通流数据,结合BP神经网络和灰色预测模型,通过加权来作为最终预测值等[17]。这些方法,都一定程度结合了多种方法或模型,以适应更复杂的现实情况的变化。但一方面是数据获取困难,所蕴含的数据相关性具有复杂的非线性,另一方面,对于外部因素,更多地从天气、节假日等进行考虑,而缺乏基于交管部门特有数据的预测分析。
为了实现对主道路和关键卡口,更准确的未来短时路况预测,本文结合差分自回归移动平均模型ARIMA与CART模型树,基于所采集的道路卡口视频实时数据、历史流量数据,并引入同时段卡口道路管控系统中的突发事故事件数据、天气数据、节假日/工作日数据,提出并实现了一个对多影响因素敏感的道路车流混合预测模型。
1 时间序列预测模型
1.1 基本思路和方法
车流量具有高度非线性和不稳定性,导致使用数学统计模型,难以获得精确的结果。机器学习模型中,人工神经网络可以准确模拟复杂的非线性系统,但可解释性不佳,计算速度较慢。
对于由于多种可能的不可控因素发生,所导致的车流预测准确度不高的问题,本文采用结合ARIMA和CART决策树的方法,构建混合预测模型,在历史车流数据基础上,把天气、节假日、突发事件发生等因素量化后,也作为预测模型的输入参数,使车流的预测在具有较快计算速度的同时,也能更好地适应其它多种外部因素带来的影响,以尝试解决面对突发情况车流预测问题。
1.2 差分自回归移动平均模型ARIMA[17]
差分自回归移动平均模型ARIMA的实现原理是对非平稳的时间序列,通过若干次差分使其成为平稳序列,以获得精度较高的预测结果。自回归差分移动平均模型(ARIMA(p,d,q))通常适用于长期趋势明显的序列,其建模的前提是时间序列的平稳性。如果不平稳,解决方法是采用预处理获得平稳序列,对平稳序列得出预测结果,再做逆操作以取得最终预测结果。
ARIMA的建模过程如图1所示。
图1 ARIMA建模过程
对数据平稳性的检测大多采用单位根检验法ADF。检验后,假设存在这样的单位根,那么这段时间序列就是非平稳的,需要通过参数d进行差分处理,处理后再次判断其平稳性[18]。这样,将ARIMA(p,d,q)模型转化为ARMA(p,q)模型,用于后面建模[19]。
通过计算自相关函数(ACF)和偏自相关函数(PACF)可以确定模型的p、q参数值。判别时根据表1完成。
拖尾即k大于p后在0附近波动,但不会恒等于0。出现截尾,则是在大于k后值快速趋近于0。因此,从表1中看出, PACF和ACF中,同时出现拖尾,就可在确定参数p、q的情况下,用ARMA模型完成建模[20]。
表1 不同模型与ACF和PACF的关系
根据表1可以根据ACF图和PACF图的具体情况选用的模型确定时间序列模型数后,用最小二乘法完成参数计算。
1.3 分类回归树CART算法
分类回归树CART(classification and regression tree)是由Leo Breiman等提出用于分类或回归的算法,也是数据挖掘领域内的常用算法之一。其本质是对特征空间的二元划分,它既可以用于创建分类树,也可以用于创建回归树、模型树,因而被广泛应用。
构建时,首先才用二分法完成切分,然后遍历数据集中的所有特征,选出最优特征,作为数据集分割的判断依据。因此,特征选择和剪枝是CART的关键。在特征选择时可采用Gini系数完成判断。
Gini系数可以用来度量数据的杂乱度,若数据集样本的系数值越大,则不确定性越大,杂乱度越高,即选为特征。其计算公式如式(1)[21]所示
(1)
其中,D表示数据集全体样本,n为样本总数,pi表示每种样本出现的概率
ΔGini(X)=Gini(D)-GiniX(D)
(2)
在进行特征选择时,用式(2)计算以特征X划分后,数据不纯度减小的程度,取值最大的X,可得到最优切分。
CART算法核心除了特征选择外,剪枝是算法的另一个关键步骤。CART使用代价复杂度剪枝算法。剪枝时使用的损失函数为式(3)
Cα(T)=C(T)+α|T|
(3)
其中,T为任意子树,C(T)为预测的误差,|T|为叶子节点总数。α用于衡量拟合程度和复杂度。
剪枝中,当α从0逐渐增大到达某个阈值α1时,可找到使损失函数值Cα1(T1)最小的子树T1,存入列表L。然后,再增大α到某个阈值αp时,找到使损失函数值Cαp(Tp)最小的子树Tp,以此类推,直到α足够大到子树T成为根节点,此时从存储子树的列表L中通过交叉验证选出最优子树,完成剪枝[22]。
本文采用CART模型树将多属性因素融入车流量的预测,构造车流预测混合模型。由于模型树有分段线性建模的优势,其每个叶节点包含一个线性方程,并且模型树的叶子节点除线性方程外,也可以是其它的机器学习模型。也因此,模型树的采用使得本混合预测模型拥有了更强的适应性和更高的预测准确度。
2 多因素混合预测模型构建
2.1 设计思想
混合预测模型的基本思想是:在基于历史车流量的预测数据基础上,用模型树引入更多的外在影响因素参与最终的预测,提高预测结果对多种外部影响因素的敏感性,提高预测结果的准确度[22]。
多因素混合预测模型的框架如图2所示。
图2 混合模型框架设计
(1)基于ARIMA生成预测车流数据1
使用自回归时序模型ARIMA,基于从交管部门采集得到的历史车流数据,进行序列拟合,预测并生成未来时间的车流量预测数据1。
(2)引入其它多因素影响因子
这些影响因子包括路口实时车流、天气、节假日、突发事件。具体描述如下:
1)路口车辆检测
基于交管局在城市道路口安置的摄像头实时抓拍的图片,采用TensorFlow object detection API进行图片中车辆数目的自动检测(对于设置有流量监测的路口直接引入实时流量监测数据)。综合平衡网络、性能和结果准确性,采取30 s一次的间隔,拍摄5次,得到的数量总和作为下步预测的其中一个影响因子。
2)天气数据
通过互联网提供的公共天气预报数据,获取未来一段时间的天气特征,并根据天气晴朗到恶劣程度按数值范围10~50进行量化。
3)双休和节假日
双休和节假日信息通过查询日历,计算出双休、调休和节假日的具体日期,按工作日、周末双休、法定节假日将日期特征分为3类,分别按数值10~50范围完成量化。
4)事件影响系数
事件影响系数用于表示事件对车流的影响程度,默认为1,表示没有特殊事件发生;当发生事件时,基于历史车流数据,将事件发生时间段的车流量均值,与日常时间段车流量均值相比,作为该事件的影响系数。
该数据来源于交管部门系统记录的特殊突发事件,包括事故、施工等。
(3)基于CART模型树和事件影响系数得出最终预测结果
使用CART模型树,将预测数据1与所得到的所有外部影响数据通过决策树与回归方程进行融合,输出第二次预测的车流量值,该二次预测结果值即是考虑了多种复杂影响因子的最终预测结果。
2.2 混合模型预测方法和实现
根据模型设计思想框架图,预测的实现步骤如下[22]:
(1)从交管部门所采集的车流数据中,将24小时数据以15 min为单位,切分为96个时间点,得到某段时间的车流量时间序列,记为
T[i]=[time[i],RealData[i]]
其中,time[i]为时间点,RealData[i]为对应的time[i]时刻的实际车流量,i为序号;
(2)将T[i]中的time[i]与RealData[i]作为自回归时序模型ARIMA的输入,预测的得到Δt内的车流量数据Predict1[i],加入到T[i]序列中,得到
T[i]=[time[i],RealData[i],Predict1[i]]
(3)交通道路监控摄像头拍摄的抓拍图片进行车辆检测,得到车辆数值,或根据提供的过车流量监测数据得到变量CarNum[i];从天气预报数据中提取需要预测的未来时间段Δt内的天气数据,量化后得到Weather[i];按工作日、周末双休日而非国家法定节假日、国家法定节假日进行数据量化后得到Holiday[i];
依次把车流监测数据CarNum[i]、天气Weather[i]、节假日数据Holiday[i]加入T[i]中,得到
T[i]=[time[i],RealData[i],Predict1[i],CarNum[i],
Weather[i],Holiday[i]]
(4)基于以上步骤得到的数据集T[i],将其中的特征变量Predict1[i],CarNum[i],Weather[i],Holiday[i]作为自变量,RealData[i]作为因变量,输入到CART算法模型树中。样本数据见表2,训练得到模型树每个叶子节点的回归方程参数,回归方程如下
Predict2[i]=A0+A1×Predict1[i]+A2×
CarNum[i]+A3×Weather[i]+A4×Holiday[i]
使用得到的模型树进行预测,得到二次预测值Predict2[i];
(5)检索交管部门系统中的事故、路段施工等事件信息,对事件影响范围内的关联路口,提取预先计算设定的对应事件影响系数,将步骤(4)得到的二次预测值Predict2[i]乘以该事件影响系数,再作为最终预测的车流量数值。
表2 实验样本部分数据
3 实验评估和结果分析
3.1 实验数据
为了验证多因素混合预测模型预测效果,采用的实验数据为:时间区间2018年9月至2019年1月,该时间段内多因素特征包括:日常工作日、突降暴雨天气(2018-11-28)、元旦节假日、围挡事件发生时段(2018-12-18)的典型路段过车流量监测数据和视频图像数据(图3~图5),共约280万条过车数据。
图3 天气变化突降暴雨时道路部分过车数据
图4 元旦时道路部分过车信息
图5 突发事件发生部分围挡时道路部分过车数据
3.2 评估分析方法
为了评估本文混合模型的最终效果,采用均方根误差RMSE(root mean square error)作为评价指标,对比分析模型预测结果与实际值之间的偏差。均方根误差计算公式如下
3.3 实验结果分析
为了验证模型的不同预测效果,基于所提供的真实测试数据,分别对一般工作日、突降暴雨、元旦节假日、围挡事件发生时间段的车流预测进行了对比,并结合预测结果图和误差,对ARIMA模型与本文的多因素混合模型的预测结果进行了比较和分析。
实验结果如下:比较如图6和图7可知:两种模型在工作日突降暴雨的情况下,模型预测结果与真实车流数据曲线之间,具有较好的一致性,预测结果接近于真实值。
比较如图8和图9可知:在元旦法定节假日时段,两种模型所得到的车流预测曲线,与真实车流曲线之重合度较高。
图6 工作日时段ARIMA模型预测车流数据与真实数据对比
图7 工作日时段混合模型预测车流数据与真实数据对比
图8 元旦时段ARIMA模型预测车流数据与真实数据对比
图9 元旦时段混合模型预测车流数据与真实数据对比
在横坐标为35的位置存在车流量的波峰,相对来说,混合模型的预测结果比ARIMA模型预测结果更接近真实车流值。但在横坐标小于20和大于40的区间,混合模型预测的结果相对来说抖动较大,而ARIMA模型预测的结果较为平滑。分析原因是在节假日的因子量化中采用了经验值估计的方法,带来一定误差影响。
比较如图10、图11可知:在道路围挡施工等事件发生时,由于事件的突发性,ARIMA模型预测曲线保留了没有事件发生时段的车流量走势,因此误差较大。而混合模型预测车流曲线,由于在结果中引入了突发事件影响因子,因此预测结果明显更接近于真实车流曲线。
图10 道路施工时段ARIMA模型预测车流数据与真实数据对比
图11 道路施工时段混合模型预测车流数据与真实数据对比
对两种模型预测值的在3种状态下的误差对比分析见表3。
表3 均方根误差对比
从上述实验结果可知,在工作日天气突变情况下,两种方法的预测结果差异不大(图6和图7),ARIMA模型与混合预测模型的预测效果接近,混合预测值较平缓,对于天气影响的敏感反应方面不明显,分析原因应该是对于工作日出行天气不是主要影响因素,天气原因造成道路封闭或交通中断事件发生更可能引起车流的显著变化。
在元旦等节假日,混合模型预测值在车流高峰时比ARIMA预测值更接近真实值,但抖动较大。
在围挡特殊事件发生时,混合模型预测值由于引入影响因子,比ARIMA预测结果误差小,预测更准确。
总的来说,ARIMA模型的预测依据是预测时间之前时间段的车流趋势,忽略了事件带来的影响,而混合模型在时序模型的基础上,加入了各种因素的变化影响,基于模型树叶子回归方程再次对预测数据进行计算和修正,降低了均方根误差,使得预测结果更贴近于真实值。
4 结束语
本文提出的基于ARIMA和CART模型树的混合预测模型,在时序预测结果数据上,通过模型树将天气变化、节假日、突发事件等复杂环境中的多重影响因素量化后,引入到预测模型,使预测结果更能适应复杂、多变的外部环境带来车流规律变化大的情况。
研究成果将有助于交管部门充分挖掘和应用所掌握的数据,依托先进信息技术方法,开展道路交通管理科研,辅助交管部门进行科学决策,增强对道路的交通协调与控制能力,提高道路通行效率。
根据研究和实验验证,从预测结果比较图和均方根误差分析,混合预测模型与ARIMA模型相比,混合预测模型在节假日或者突发偶发事件中,可以获得更好的预测结果。
但是,由于在研究中采用了组合模型,数值传递次数的增加可能导致数据计算偏差累积,此外也带来了计算复杂性的提升。下步的研究一方面是对影响因子的量化和算法做进一步的改进和优化,另一方面将增加对传入数据的优化处理环节,以进一步提高预测准确性。