多尺度多方法组合的网约车需求预测方法研究

描述

作者:丁夏蕾,郭秀才,程勇  

引 言

为了满足各种乘客的出行需求,随着互联网的发展,滴滴打车等在线打车平台应运而生,这些服务使得乘客的出行需求向更灵活的公共交通工具发展,例如出租车、共享汽车和自行车。至关重要的是,移动随需应变系统可以进一步开发,以预测全市范围内的乘客出行需求(即载客和空载频率),这将大大有助于定制有效的车辆分配和调度策略,以实现需求和资源平衡。值得一提的是,如果车辆分布与乘客需求分布不匹配,容易造成交通拥堵、资源浪费等问题,更重要的是会降低客户满意度。

已存在的预测网约车需求的方法主要包括三类:基于统计分析的预测方法(如整合移动平均自回归模型)、机器学习方法(如随机森林)和深度学习方法(如长短期记忆神经网络)。文献[1]使用梯度提升回归树对网约出租车需求进行预测。文献[2]对传统的梯度提升算法进行优化进而预测网约车需求。文献[3]使用隐马尔科夫预测短时交通状况。文献[4]使用灰狼优化算法对LSTM优化。文献[5]使用历史数据并结合天气、POI等构建多特征 LSTM 模型。文献[6]提出一种基于多层卷积神经网络的城市交通流量模型,并使用残差网络防止模型过拟合。文献[7]使用基于卷积和卷积LSTM的编码器⁃解码器框架捕获时空特征,通过引入一个多层次注意力模型,包括全局注意力和时间注意力挖掘潜在的城市交通流动性规律的影响并捕获相关的时间依赖性。文献[8]提出一种出发地⁃目的地交通需求预测模型,使用卷积神经网络和LSTM捕获空间特征和时间特征。文献[9]使用长短期记忆神经网络预测共享单车短时需求量。文献[10]使用量子行为粒子群算法优化径向基神经网络,进而对网约车需求量进行预测。文献[11]利用短时交通流组合模型预测。文献[12]使用改进型贝叶斯组合模型预测短时交通流量。文献[13]使用传统时间序列预测方法ARMA和卡尔曼滤波预测短时交通流量。

虽然目前对于网约车需求预测在预测方法和预测精度上有了很大提高,但由于网约车订单数据通常具有多维特征,如时间特征(例如每天中的不同时刻、周内周末)、空间特征、天气影响等,由于每个单一的时间序列预测模型都有自身的特点,同时又不可避免地具有应用局限性,反映数据信息也存在一定差异,使用单一模型进行预测难免会丢失部分数据信息[13],要准确预测网约车需求是非常有挑战性的。使用多个预测模型相结合的组合预测模型,可以弥补单个模型的缺点,同时使用多模型组合预测也逐步成为研究发展的趋势。本文使用历史平均、ARIMA、LSTM三种模型对时间序列建模,分别挖掘时间序列数据的周期性规律、差分变化规律和其他复杂规律,从不同角度挖掘数据信息,然后用GWO(灰狼算法)对几种单一模型权重进行寻优,最后对未来时间段的网约车需求进行预测。

1、相关研究

1.1 灰狼算法

灰狼优化算法是文献[14⁃15]在2014年提出的一种群智能优化算法。该算法是受到灰狼捕食猎物活动的启发而开发的一种优化搜索方法,与其他优化算法相比,灰狼优化算法具有较强的收敛性能、参数少、易实现等特点,近年来受到了学者的广泛关注,它己被成功地应用到了车间调度、参数优化、图像分类等领域中。灰狼算法的核心思想是通过模仿灰狼的社会等级制度,将捕食任务分配给不同等级的灰狼群体,以完成包围、追捕和攻击,从而实现全局最优的过程。

1.2 LSTM

一般的循环神经网络,如RNN通常会因为时间相隔较远之间的依赖问题难以学习,LSTM 通过对输入信息进行门控处理,很好地解决了时间序列数据长期依赖问题。LSTM 的 cell单元结构如图1所示。

数据集

LSTM模型内部使用输入门it、忘记门ft、输出门ot对信息进行相应的处理。其中:ht-1表示模型上一次输出的结果;xt表示模型当前输入的信息。对于单元状态中的每个数字 ct-1,用1代表完全保留ct-1,而用0代表完全抛弃ct-1 。tanh是双曲正切激活函数,σ (⋅)是Sigmoid激活函数。

1.3 ARIMA

差分整合移动平均自回归模型(AutoregressiveIntegrated Moving Average Model,ARIMA)是一种传统的、在时间序列预测问题中经常被使用的模型,对于平稳数据能够很好的预测。ARIMA包括三部分:自回归项 、积分项 、移动平均项 ,用符号 可以将其表示为ARIMA(p,d,q),其中,p代表原始数据本身的滞后数,d是积分次数,表示原始数据经过d次积分可以变为稳定数据,q表示预测误差的滞后数。ARIMA(p, d, q)模型用公式可以表示为:

数据集

式中L是滞后算子。

1.4 随机森林

随机森林(Random Forest,RF)是以决策树为基学习器的一种集成学习方法,与 Bagging(装袋算法)不同的是,RF 引入了随机属性选择,具体来说,RF 在选择划分属性时,首先在当前节点的属性集合中随机选择k个,然后再从这k个属性中选择最优属性进行划分,这样做增强了模型的泛化能力。

2、网约车影响因素分析及特征提取

首先对影响网约车需求的相关因素进行分析并可视化,然后使用随机森林回归算法分别对网约车日需求量和网约车小时需求量建模,从而对影响网约车需求的相关因素进行排名,进而选择重要的影响因素,为后面的网约车需求预测做准备。

2.1 网约车影响因素分析

网约车需求通常受时间(不同时刻、周内周末等)、空间、天气(温度、天气状况等)等多种因素影响,通过对获取到的海口市2017年5—10月网约车订单数据进行统计分析,进而分析不同因素对网约车需求的影响。

海口市5—10月网约车日订单量变化图如图2a)所示,从图中可以看出,随着时间的推移网约车需求量也在逐步增加,同时可以看出,网约车需求量具有周期性特征。网约车订单量工作日、非工作日变化图如图2b),图2c)所示,图中展示的是5月8日—12日(周一至周五)及5月13日—14日(周六、周天)一周的网约车订单量。从图中可以看出,工作日和非工作日的网约车订单需求模式有很大不同,工作日需求量有3个峰值(早9点、下午14点、晚上18点),反映了人们一天当中的通勤模式,而非工作日没有工作日那么明显的需求峰值。

数据集

从天气预报网爬取到的天气数据示例如表 1所示。天气状况划分为5种类型,分别为多云、雷阵雨、中雨、大雨、暴雨,其中 6 个月中天气状况以雷阵雨和多云为主。对于天气数据中的风力风向,考虑其每一条数据几乎无差异,所以考虑不将其作为有效特征。

数据集

通过关联天气状况数据与网约车订单数据,分析天气状况对网约车需求量的影响。天气对网约车需求的影响如图3所示,图中展示的是9月12日—14 日和9月19日—21日的网约车需求量小时变化图,两个时间段均是周二至周四,两个时间段除了9 月14日下雨,其余时间均是多云。可以发现,9月14日网约车需求明显少于同期水平,说明天气状况是影响网约车需求的一个重要因素,尤其是下雨天网约车订单量会减少。

数据集

2.2 特征提取及特征选择

特征选择可以精简掉无用的特征,以降低最终模型的复杂性,它的最终目的是得到一个简约模型,在不降低预测准确率或对预测准确率影响不大的情况下提高计算速度。为了得到这样的模型,有些特征选择技术需要训练不止一个待选模型。目前主流的特征选择技术可以分为以下三类:

1)过滤式

过滤式方法中的一种典型方法是变量排序法,该方法独立于后续的建模方法。过滤式方法的关键就是找到一种能度量特征重要性的方法,比如Pearson相关系数、信息论理论中的互信息等。

2)包裹式包裹式方法的核心思想在于,给定了某种模型及预测效果评价的方法,然后针对特征空间中的不同子集,计算每个子集的预测效果,效果最好的即作为最终被挑选出来的特征子集。包裹式的特点是计算量大。

3)嵌入式嵌入式方法将特征选择融合在模型训练的过程中,比如决策树在分枝的过程中,就是使用嵌入式特征选择方法,其内在还是根据某个度量指标对特征进行排序。

本文使用嵌入式方法中的随机森林算法进行特征选择,随机森林是一种非常流行的特征选择方法,该方法易于使用,一般不需要特征工程、调参等繁琐的步骤。

对于 2.1节中分析可视化的网约车影响因素包含月份、周内周末、星期几、小时、天气状况、温度,对这些影响因素进行特征编码。对于月份、星期几这几个因素直接使用对应数字构成特征,将周内编码为0,周末编码为1,对于5种类型的天气状况分别将其编码为0~5。表2为相关特征示例。

数据集

由于爬取到的天气数据较为粗糙,温度只有一天当中的最高温度和最低温度,所以分别采用随机森林算法对日订单量的影响因素特征和小时订单量的影响因素特征进行排名。

使用随机森林算法对特征进行排名,参数全部使用默认参数,其中基学习器数量为10个,max_features为auto,对每日订单量的影响因素做特征排名。相关特征包括:月 份(month)、是否工作日(is Weekday)、周几(dow)、天气状况(wea)、温度平均值(tem_mean)。实验结果图 4a)所示。

用相同的方法对每小时订单量的影响因素做特征排名。提取的特征包括:月份(month)、是否工作日(isWeekday)、周几(dow)、天气状况(wea)、温 度 平 均 值(tem_mean)、小时(hour)。实验结果如图4b)所示。

从上面两个实验结果可以看出:影响网约车需求最重要的特征是小时(即一天中的不同时刻),在小时订单量特征重要性实验中达到0.9;其次是月份,订单量特征重要性实验中达到0.56;最不重要的特征是周几,在两个实验中特征重要性排名均最低,可以认为周几是不重要的特征,所以将周几这一特征剔除。其他特征,如是否工作日、天气状况、温度平均值予以保留。

数据集

3、 组合预测模型

3.1 相关定义及问题描述

定义1(网约车需求):对于网约车订单数据,每个订单中包括( ppick , pdrop , tpick , tdrop )等信息,表示用户在时间为tpick、位置为ppick 点上车,在时间为 tdrop、位置为pdrop点下车,用τ表示订单集合,用Gλ={gii∈[1,n]}表示所有区域集合(本文按照行政区域划分)。对于任一点p(xp,yp),如果p在区域gi中,记作p∈gi,给出时间段[st,et],对所有订单数据实行等时段同区域需求量聚合,可以计算出上车需求 数据集,其满足数据集{|T∈τ| |Tppick∈gi∧Ttpick∈[st,et]},其中δpt,i表示在时 间间隔[st,et]从区域gi出发的需求量。

问题描述:网约车需求可以表示为时间序列Xt,目标是给出网约车历史需求数据{Xti=t-n+1,⋯,t|}来预测未来需求量Xt-1,其中n表示序列长度。

3.2 组合预测模型构建

本文提出一种组合预测模型,模型融合了历史平均、ARIMA和LSTM三种方法的优势,以灰狼算法搜索最优加权组合预测模型。组合预测结构图如图5所示。

首先通过使用历史平均、ARIMA、LSTM三种模型对时间序列建模,分别挖掘时间序列数据的周期性规律、差分变化规律和其他复杂规律;然后用灰狼算法对三种模型进行组合,计算最优组合参数;最后对未来时间段的网约车需求进行预测。根据最优化理论,将损失函数定义为预测误差平方和最小,计算式为:

数据集

式(2)要求适应度函数(均方误差)最小,式(3)为约束条件。式中:yrteal是t时刻真实值;ytpred是t时刻预测值;,fHA,fARIMA,fLSTM分别是三种方法的预测值;w1,w2,w3为对应的权重。使用灰狼算法搜索权重wj的最优解,操作步骤如下:

步骤1(初始化模型参数):设定狼群规模N,最大迭代次数 imax,组合的模型数量 m = 3,适应度函数取 RMSE(均方误差),产生N个m维[0,1]区间上的随机数向量。对每一个向量执行 wni∑i =1mwni,即对三个模型权重做归一化处理,使其权重和为1。初始化α,β,δ狼的适应度值α_score,β_score,δ_score为inf(inf表示无穷大),初始化α,β,δ狼的位置向量Xα,Xβ,Xδ为[inf,inf,inf]。

步骤2(单一模型预测):分别利用三种单一模型预测时间序列数据,调整单一模型参数至最佳状态,得到每个模型的预测结果。

步骤3(社会等级分层):把N个狼群分别代入组合模型中,求出N个ypred,计算适应度,将狼群中适应度最好的3个适应度值分别赋给α_score,β_score,δ_score,同时将最好的位置向量分别赋给Xα,Xβ,Xδ。

步骤4(包围猎物和狩猎):灰狼搜索猎物时会逐渐接近猎物并包围它,搜索过程主要靠α,β,δ狼指引,根据当前种群中适应度最好的三只灰狼α,β,δ 的位置信息Xα,Xβ,Xδ更新其他狼的位置,公式如式(4)~式(10)所示:

数据集

数据集

式中:Xα,Xβ,Xδ分别表示当前种群中α,β,δ 的位置向量;Dα,Dβ,Dδ是位置更新后的位置向量;Ai,Ci是协同系数向量;X 是当前灰狼的位置向量;X (t+1)是更新后的灰狼位置向量。

步骤5:再次执行数据集做归一化处理。

步骤6:如果迭代结果趋于稳定或达到最大迭代次数,则停止迭代,输出 Xα 并可视化迭代过程;否则,重复步骤3~步骤 5。

4、 实验分析

4.1 实验数据及预处理

实验使用的数据分为两部分:海口市网约车订单数据和海口市行政区域划分数据。海口市网约车订单数据中包含了海口市183天的网约车订单数据,其中包括约1400万条用户乘车订单记录,每条记录的主要信息包括用户上下车时间、用户上下车位置(经纬度),具体信息如表3所示。滴滴出行数据起点Google Earth 分布图如图6所示。

数据集

在进行实验之前,先设置实验参数,时间粒度取1 h,并以时间粒度为时间间隔,将时间轴划分成多个时间段,并统计每个时间段内各区域的上车订单数量作为网约车需求量。实验使用最后7天(168 h)作为测试集,其他数据作为训练集。实验运行环境为:Intel Xeon E5⁃2620CPU,2.4 GHz,内存 32 GB,操作系统为Windows7,所有实验均用集成开发环境 Anaconda(Python 3.7)完成 ,主要用到的第三包括Keras、TensorFlow、statsmodels等。

实验采用五种评价标准:MSE(均方误差)、RMSE(均方根误差)、MAE(平均绝对误差)、MAPE(平均绝对百分比误差)、MSPE(均方百分比误差)。五种评价标准计算如下:

数据集

式中:yrteal为t时间段的真实值;ytpred为相应的预测值。

4.2 单种模型仿真验证

历史平均法:历史平均法使用历史上相同时刻的平均值作为未来网约车预测值,比如要预测星期一 12:00—13:00 的交通量,那么就将历史上星期一12:00—13:00的交通量做平均后作为预测值。

LSTM:在2.2节中最后提取的特征包括月份(month)、是否工作日(is Weekday)、周几(dow)、天气状况(wea)、温度平均值(tem_mean),使用这5个外部特征和前5个历史时刻网约车需求量共10个特征一同构成多元单步LSTM的输入向量。使用多元单步 LSTM 模型进行网约车需求预测分为三步:首先对原始数据做缩放处理,使所有数据在同一量纲下,并对缩放后的序列数据使用滑动时间窗法分割数据,构建 feature⁃target对,将问题转化为监督学习问题;然后搭建多元单步LSTM模型;最后对未来网约车需求进行预测。本文设置输入数据时间步取10,输出时间步取1(即 10 个预测1个),模型采用三层LSTM,每层隐含层神经元个数取50个,批处理大小 batch_size 取32,使用 Early Stopping 机制防止模型过拟合并能获得最好的泛化性能。使用 Adam 优化器优化模型参数。

ARIMA:为了搜索ARIMA的最优参数,本文使用AIC(赤池信息准则)评价标准评估模型优劣,AIC越低,模型性能越好,AIC越高,模型性能越差。同时,为了提高预测准确性、减少迭代次数,从集合{1,2,4,6,8}中选择p和q,从集合{0,1,2}中选择参数 d。通过实验得到最优参数为ARIMA(4,1,2)。

三种单一模型的预测结果如图7所示。从实验结果可以看出,三种独立方法均可以在一定程度上反映海口市网约车需求的变化趋势。历史平均算法能在很大程度上反映周期性规律,在低需求量时段能很好的预测,但对需求量高峰时段不能很好的预测。历史平均算法、LSTM 算法在低需求量时段能很好的预测,而且在需求量高峰时段 ,LSTM算法要好于历史平均算法 。ARIMA模型在低需求量时段预测不如历史平均和LSTM,但在需求量高峰时段要好于以上两种方法,这主要是因为ARIMA能较好地处理序列数据的差分变化,捕获数据的差分变化规律。

数据集

4.3 组合预测模型仿真验证

为了验证本文所提出组合模型的优越性 ,使用RMSE(均方根误差)为适应度函数对三种模型进行组合,结果如表4所示。可以看出,在单一模型中,LSTM模型在不同评价标准下结果均优于历史平均方法和ARIMA方法,同时,相比于单一模型,组合预测模型在五种不同误差尺度下均好于三种单一模型,在网约车需求预测问题上具有更好的预测精度。

数据集

为了验证模型的鲁棒性,在不同的适应度函数下进行实验,结果如表5所示。结果显示,在不同适应度函数下,组合模型在不同评价标准下的误差均优于单一模型,验证了模型的鲁棒性。

数据集

5、 结 论

本文通过将历史平均、ARIMA、LSTM三种时间序列预测方法用灰狼算法进行加权组合,分别挖掘时间序列数据的周期性规律、差分变化规律和其他复杂规律,然后用灰狼算法对三种模型进行组合寻优,计算最优参数,最后对海口市网约车需求量进行预测。通过在真实数据集上验证组合模型的有效性并与其他单一模型进行比较。实验结果表明,采用组合模型能够准确地预测网约车需求且优于其他单一模型,这对于网约车公司预先调配车量来满足网约车用户需求和提高用户体验具有重要意义。

审核编辑:郭婷

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分