基于Spark和优化BP神经网络的出租车需求预测模型

摘要

【目的】出租车调度问题作为影响我国交通发展的重要问题,一直受到学者们的广泛关注。针对实际生活中出租车空驶时间长、人车匹配效率低以及供不应求等问题,研究一个基于Spark和优化BP神经网络的出租车需求预测模型,对城市内某个区域未来一天内的出租总需求量进行预测。其中核心的预测算法是优化的BP神经网络。【方法】针对传统BP神经网络面对大数据集会出现收敛慢并且训练不理想的情况,利用灰色关联分析和遗传算法对模型进行优化。提前使用灰色关联分析对数据集进行处理并将结果作用于BP神经网络内部从而优化网络的收敛速度以及训练效果,并使用遗传算法再次对模型参数进行优化,将最终模型通过Spark实现从而加速模型的训练速度。【结果】通过模型对来自于TLC(纽约市出租车和轿车委员会)的出租车数据集的训练以及预测的实验结果可知:和原始BP神经网络、遗传算法优化的BP神经网络、模拟退火算法结合遗传算法优化的BP神经网络以及粒子群算法优化的BP神经网络相比,本文提出的优化模型的预测精度分别提升了25%、11.1%、6.9%、12.4%,训练时长分别缩短了32.9h、30.1h、36.2h、33.5h,并且收敛速度明显加快。最后将模型在我国的成都出租车数据集上进行训练和预测也证明了模型的泛用性以及对我国城市出租车需求量预测的有效性。【结论】优化模型可以很好地完成出租车需求量预测的任务,为决策者们进行出租车调度提供了有效参考,从而缓解目前存在的出租车调度问题。【局限】但是模型仍有改进空间如预测范围以及选取参数等。

关键词: 出租车调度; 出租车需求量; 预测模型; BP神经网络; 灰色关联分析; 遗传算法; Spark

引言

在城市的日常运转以及我们的现实生活中,不难发现在某些区域的出租车很容易进行无目的的巡游,导致空驶时间长,造成多余的尾气排放等问题,即出租车供大于求的现象;而某些区域又会出现出租车供不应求的现象;这就是目前我国在出租车调度方面存在的一个一般性问题。而如今我国的网约车平台发展迅猛,网约车作为另一种类型的出租车,其新颖的人车对接模式可以使乘客在任意固定地点进行打车,一定程度上缓解了传统出租车无目的巡游的问题;但是网约车的底层机制和出租车是类似的,区别在于网约车的接客范围更广,可以定位到一定范围内的某个乘客对于打车的需求,而在没有目标乘客时,网约车仍需要通过巡游寻找乘客,并且网约车前往乘客地点的过程仍算空驶时间,乘客也需要花费时间等待网约车的接客,这些也都是传统出租车一直存在的问题。针对以上我国出租车调度存在的问题,需要一个良好的出租车需求预测模型来帮助交通系统、出租车公司或者网约车平台进行出租车的调度,从而缓解存在的出租车调度问题。

目前,已有许多学者对出租车需求的预测通过不同的方法进行了研究。孙立山等[1]使用经过k-距离曲线改进的DBSCAN空间聚类算法对出租车上下客热点区域进行分析,并使用BP神经网络进行具体时段的热点区域出行需求预测。周丰[2]将城市交通看作时变的网络并用PageRank算法进行计算,之后再用回归积分滑动平均模型预测下一时间的热点乘车量。二者都以时间段为时间基准对热点区域进行了出租车需求预测。路民超等[3]考虑到不同区域间潜在的空间依赖关系对出租车需求的影响进而建立多因素时空图卷积网络模型对出租车需求进行预测。Liu[4]使用基于上下文感知注意模块的卷积递归神经网络对细粒度的出租车需求量进行预测,其能将每个区域与上下文信息结合起来,并通过实验验证了模型的可行性。Qiu[5]提出了一种新的情景化时空网络并对出租车的始发地-目的地需求进行了预测,并用实验证明了模型的有效性。上述学者使用了不同的方法进行了出租车需求量预测的研究,并且大都考虑了时空特性,证明了时空特性与出租车需求量的紧密联系。

另外有很多学者对短时需求的预测进行了大量研究。蔡延光等[6]对于高速公路交通流提出了结合改进布谷鸟搜索算法和径向基函数神经网络的预测方法。梁轲等[7]用大数据计算框架MapReduce优化的遗传算法的预测方法去预测短时交通流。Wang[8]用自适应遗传算法优化BP神经网络并将其用于交通流的预测。李巍[9]提出一个多时间分辨率的基于层次注意力机制的循环高速网络对指定区域未来短期时刻的出租车需求进行预测。上述学者使用不同的方法对短时的交通流或者出租车需求进行了预测。

最后,还有很多学者对出租车实时需求的预测进行了大量研究。Xu[10]提出了一种长短期记忆序列模型来实时性地预测未来某一区域的出租车需求量。Moreira-Matias[11]通过使用最原始的一种模型——感知器提出了学习概念,实现了一种在实时环境中采用基于历史GPS数据的学习模型的方法。除此之外,Zhang[12]使用并行多任务学习模型对实时出租车需求量进行预测。

目前,对于出租车需求量的预测大多是实时性和短时性的预测且粒度更细。实时性预测固然考虑的因素更多,预测结果也更具时效性,但是其预测结果作用于实际的出租车调度时就会遇到很多潜在以及突发的问题,如不断发生变化的道路情况、潜在的交通隐患、实时的天气和温度因素影响等。现实中存在的不确定因素会对出租车的行驶与接客造成影响,导致被调度的出租车可能无法根据预测结果在较短时间内到达接客地点,从而影响实时性预测的有效性。所以实时性预测可能并不能对于实际的出租车调度提供理想化并且稳定的贡献。除此之外,大多数模型在面对大数据场景下都会出现训练速度过慢,预测效果不理想等情况。

针对于上述关于出租车需求量研究存在的问题,本文在已有的大量出租车行驶数据的支撑下建立了一个基于Spark的离线出租车需求预测模型,以较为宏观的预测角度弥补实时性预测的劣势,模型内部实现预测功能的基础算法为BP神经网络。其由于优秀的自学习能力和理论上能逼近任何函数的特点,广泛的被应用于预测研究上[13-14]。但是针对BP网络容易出现收敛缓慢的特点,本文用灰色关联分析[15-17]和遗传算法[18-20]对其进行优化[21]并将其实现在Spark计算框架上[22-23]

灰色关联分析先一步对数据集中的输入特征以及需求量之间的关系进行分析,从而使网络提前知道各个特征和需求量之间的关联程度。其次,遗传算法可以提前对网络内部参数进行初始化寻优。通过这两种算法的优化,能加速BP神经网络的收敛速度,并且提高网络的预测精度。并且由于Spark是一个基于内存并且部署于集群运行的并行计算框架,所以基于Spark实现的优化BP神经网络能进一步加快网络的计算迭代速度。

本文的主要贡献在于:

1)灰色关联分析算法提前分析数据并作用于传统BP神经网络,以更改网络结构的方式优化网络,加快了网络的收敛速度并提高了训练效果。

2)用遗传算法对优化BP神经网络的内部参数进行初始化寻优,进一步加快其收敛速度并提高预测精度。

3)将最终的优化BP神经网络在Spark计算框架上实现并运行在Hadoop集群的Yarn环境之上,大大加快了模型训练的迭代计算速度。

4)经过实际数据实验证明模型的有效性,可以对出租车需求量预测做出实际贡献,有效弥补目前存在的实时性预测的劣势。

1 优化BP神经网络

BP神经网络有强大的学习能力,泛用性强,并且理论上可以逼近任何形式的函数,但是在面对大数据集的场景下会出现收敛速度慢,并且训练效果不理想的情况。为了有效地解决这一问题,本文使用灰色关联分析提前处理数据集,得到各个特征与出租车需求量的关联程度后,将结果作用于传统BP神经网络,通过改变其网络结构的方式优化BP神经网络的前向传播过程。最后,使用遗传算法对经过灰色关联分析优化的网络内部参数进行初始化寻优。

1.1 数据说明及预处理

本文选用的数据集来源于TLC机构(纽约市出租车和轿车委员会),其公开了机构下的3种出租车每年所载客的详细数据,数据包括:载客时间、载客地点、抛客时间、抛客地点、乘客数量、每次顾客乘坐距离、费用等,数据形式是以月为单位存在的csv文件,每个文件都包含了上述提到的总共17个字段。

本文选用黄色种类出租车的2017年和2018年两年的数据作为优化BP神经网络的训练数据,而用黄色种类出租车的2019年的数据作为验证数据对训练过后的模型进行预测并进行对比检验。经过统计,2017年和2018年的原始数据总量为216,301,124条,2019年的原始数据总量为84,399,019条。

由于原数据中包含了大量本模型用不到的字段,并且缺少部分关键字段,所以要对原数据进行预处理。

首先将原数据转为文件格式并存入文件系统中作为备份,接着对其剔除掉原数据中存在的无用字段,最后以日期和区域为单位对出租车需求量进行求和操作,得到每日各个区域的出租车需求总量。之后需要选择最会影响市民选择出租车进行出行的几个关键因素,完成对数据进行补全字段的操作。

通过分析以及查找相关文献[24-25]可知,影响市民出行方式的首要因素就是天气,天气状况会直接促使市民选择最适合自己和当下情况的出行方式。第二个因素为温度,温度作为自然环境中最重要的特征之一,它会实时影响在室外的市民体感,从而改变市民的出行方式,而每日的最高温和最低温作为每日温度的两个极端,更能代表着温度对于市民出行选择的影响。第三个因素为时日,由于人类社会的运作方式使得市民会在工作日、双休和节假日做出完全不同的出行选择,所以不同时日市民对于出租车的需求量有很大的影响。本文选择风力大小作为最后一个因素,其原因是风力大小也是自然环境的一大特征,同样会对市民的出行选择造成影响。综上所述,本文选择补全的字段分别为天气、当日最高温、当日最低温、时日、风力大小。

最后通过在天气后报以及“timeanddate”网站查找资料以及历史数据的方式,本文将上述的相应字段用数字的表示方式以日期为单位单独写入到一个文件中并存入文件系统。以下为本文对待补全的各个字段用数字的表示方法:

1)时日:本文使用不同值对三类时日进行区分的方式进行表示,工作日用数字1表示,正常的双休日用数字2表示,节假日用数字3表示;

2)天气:将天气按照恶劣程度从低到高用11010个数字表示;

3)温度:直接使用每日最低气温和最高气温本身的数字表示;

4)风力大小:直接使用风力本身的数字表示。

最后,将处理过后的原数据集和补全字段数据集按照对应日期进行合并,得到一组最终的数据文件并将数据进行归一化,将其存入文件系统,完成数据预处理。完成数据预处理后的2017年和2018年的数据即训练数据总量为82,565条,占总数据的64.94%2019年的数据即验证数据总量为44,587条,占总数据的35.06%

如表1所示,经过数据预处理之后的数据总共有7个字段,分别表示城市中的区域编号、城市中某个区域一天的出租车需求量、当日是何种时日、当日的天气状况、当日的最高温、当日的最低温、当日风力大小。最终数据划分为265个区域并用“PULocation”字段进行表示,其中“TaxiCount”是模型需要预测的值,其他的字段为需要输入给整个模型的参数,即代表着影响一天当中某个区域对于出租车需求量的因素。

1   数据集中的7个字段

Table 1  Seven fields of dataset

编号

字段

  • 25
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗思付之技术屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值