基于集成融合算法的客流预测模型
2021-12-09秦伟曾明
秦伟 曾明
摘要:本文利用郑州地铁的乘客OD数据,对不同时间周期内的站点进、出站客流进行预测。利用深度学习网络,将数个弱回归模型集成融合成强回归模型。同时,利用参数修正算法对该模型进行进一步地增强。最终,通过郑州地铁真实数据对该模型进行了评估,得到了满意的效果。
关键词:集成融合;深度学习;回归模型
1背景
地铁是市民常用的交通工具之一,地铁的进站和出站人数会随着季节、节假日、工作日、周末、每天不同的时段等不同而发生变化,特别是在节假日、工作日的早晚高峰期,这对地铁工作人员进行实时管控提出了很大的要求。如果没有实时的掌握住每个时段的客流信息,那么将会对整个列车的调度造成很大的影响,也会给市民的出行造成很大的不方便。所以,对地铁客流进行预测是非常重要的。
本文提出了一种基于集成融合算法的客流预测模型,可以灵活地融合地铁OD数据、节假日、天气、特殊事件等信息,利用深度学习、机器学习、集成融合等方法,通过数据预处理、特征工程、模型建立、训练和评估这一系列的过程,进行站点/线路不同时间周期内进、出站客流量的预测。
本文后续章节安排如下:第2章,介绍客流预测模型的总体设计和重点算法;第3章,对客流预测模型进行测试评估,并且分析结果;第4章,进行总结和提出后续工作方向。
2总体设计方案
本次模型的总体设计方案如下图所示:
将需要预测的日期根据实际的分析结果,进行分类:
1.第一类是待预测日期对应的历史客流数据变化稳定在某一个非常小的固定范围内的数据,这类数据使用统计规则算法进行预测,得到的效果非常好。
2.第二类是待预测日期对应的历史客流数据分布变化不稳定、复杂的日期,这类数据使用DNN深度学习算法进行预测,得到的效果非常好,典型的就是周末、节假日。
3.结合统计规则算法和DNN深度学习算法的优缺点,我们使用集成融合算法对这两种算法进行集成、融合,达到更加好的拟合效果。
下面将对上述算法进行详细介绍。
2.1统计规则算法
统计规则算法的流程如下:
1.对预测日期分类:将预测日期分词工作日、周末、节假日3类。
2.对于节假日预测:
其中:N是指跟待预测日期类型(节假日)相同的历史数据,按照日期降序排序,取最近的N个日期。y表示的是跟待预测日期类型(节假日)相同的历史数据真实客流量。
3.对于工作日/周末预测
其中,N是指跟待預测日期类型(工作日/周末)相同的历史数据,按照日期降序,取最近的N个日期。N是指跟待预测日期类型(相同的星期)相同的历史数据,按照日期降序,取最近的N的日期。y表示的是跟待预测日期类型(节假日/周末/相同的星期)相同的历史数据真实客流量。
2.2DNN深度学习算法
DNN深度学习算法的核心步骤主要是特征工程
所谓特征工程的构建,主要是通过数据分析、相关性分析、AutoML等方式构建一些有价值的变量,作为模型的输入,主要包括以下变量:
■待预测日前7天对应客流数据
■前三周中与待预测日星期所在日相同的数据
■待预测日月份
■待预测日星期
■气温
2.3集成融合算法
集成融合算法同样是构建一个DNN深度学习网络,不同的是在进行构建一个新的DNN深度学习网络之前,会将上一个DNN深度学习算法的预测结果和统计规则算法预测结果作为本次DNN深度学习网络的一个特征作为输入,再次进行训练,达到集成融合的效果。
整个步骤最核心的就是特征的合并,也叫做张量连接,下面是张量连接的实现步骤:
■特征工程向量:
■深度学习算法预测结果:
■统计规则算法预测结果:
■张量连接:
3模型评估
3.1数据集
本次模型评估,根据星环公司提供的郑州地铁从2015年1月1日至2015年12月24日出入的客流量数据,利用提出的客流预测模型对未来一个星期(2015-12-25~2015-12-31)的客流量进行预测,根据官方给出的评价指标,通过评价指标在所有参赛队伍中的排名,验证我们的地铁客流预测模型的技术可行性。
3.2评价函数
本文使用模型平均绝对误差人数MAE来评价模型的好坏,具体的计算如下:
i表示站点,范围为[1,N],N表示站点的总个数,本次比赛中公有20个站点。
d表示天数,范围为[1,7],表示未来7天的客流量
表示预测出来的客流量,表示真实的客流量
3.3评估结果
利用前面介绍的数据集和评价函数,统计了参赛各队的结果。从中可以看到,我们团队的MAE值为1557.34,在所有参赛队伍中是最小的。更进一步的,本文提出的墨西哥比排名第二的湖南预测如神工院队模型的MAE值2734.67,足足小了1200多。这就足以说明本文提出的基于集成融合的客流预测模型,在所有参赛队伍中是最好的,取得了最优的拟合效果。
4结论和后续工作
4.1结论
本文利用郑州地铁的乘客OD数据,对不同时间周期内的站点进、出站客流进行预测。利用深度学习网络,将数个弱回归模型集成融合成强回归模型。同时,利用参数修正算法对该模型进行进一步地增强。最终,通过郑州地铁真实数据对该模型进行了评估,得到了满意的效果。
4.2后续工作
4.2.1多时间粒度+进出站验证
根据星环公司官方的要求,目前只是针对天时间粒度,对进出站的客流总数进行预测。但是天时间粒度相对来说会比较大,在实际的地铁运营需求中,时间粒度应该是小时、甚至是分钟,而且乘客的进出站规律也是不一样的,所以,后续需要对多时间粒度,特别是细时间粒度(比如1小时、半小时、15分钟、5分钟、1分钟)和进出站分别预测。
4.2.2多数据集验证
根据星环公司官方给到的数据,是2015年的乘客刷卡记录,我们知道随着时间的推进,地铁客流量会发生不断的变化。用2015年的数据建立起来的模型,是否适用于其他数据集,比如2016年、2017年、2018年、2019年则有待验证。所以在后续的工作当中需要利用多数据集进行来验证模型的稳定性。
参考文献
[1]贾锐军、冉祥来、吴俊霖、戴晨斌等,基于XGBoost算法的机场旅客流量预测[J],民航学报,2018年06期
[2]蒙特卡罗模拟,百度百科,https://baike.baidu.com/item/%E8% 92%99%E7%89%B9%E5%8D%A1%E7%BD%97%E6%A8%A1%E6%8B%9F/5160083?fr=aladdin
[3]小白都能看懂的蒙特卡洛方法以及python实现,CSDN博客,2018.
https://blog.csdn.net/bitcarmanlee/article/details/82716641