文章信息
本周阅读的论文是题目为《An Improved STL-LSTM Model for Daily Bus Passenger Flow Prediction during the COVID-19 Pandemic》的一篇2021年发表在《Sensors: Intelligent Transportation Systems》涉及疫情时期公交客流预测的文章。
摘要
新冠肺炎(COVID-19)大流行是一个重大的全球公共卫生问题,它给人们的旅行和公共交通公司的管理造成了困难和麻烦。提高新冠肺炎疫情期间公交客流预测的准确性,有利于企业更好地做出运营调度决策,对疫情防控和预警具有重要意义。本研究提出一种改进的STL-LSTM模型(ISTL-LSTM),该模型融合了基于局部加权回归(STL)的季节趋势分解过程、多重特征和三个长短期记忆(LSTM)神经网络。具体来说,所提出的ISTL-LSTM方法包括四个过程。首先,通过STL将原始时间序列分解成趋势序列、季节序列和残差序列。然后,将每个子系列与新特征连接起来。此外,每个融合子序列分别用不同的LSTM模型进行预测。最后,将LSTM模型的预测值进行组合,得到最终的预测值。在案例研究中,选择北京市疫情期间的每日公交客流预测作为研究对象。结果表明,与单一模型或混合模型相比,ISTL-LSTM模型有更好的预测表现,预测精度至少提高15%。本研究填补了新冠肺炎疫情影响下公交客流预测的空白,为客流预测研究提供了有益的参考。
介绍
自从新冠疫情爆发(COVID-19)以来,全球人民的生活和工作受到严重影响。在公共交通方面,由于空间有限,公交、地铁和飞机等交通工具成为了疫情快速传播的途径,由此对乘客的出行以及公共交通的运营造成巨大影响,例如很多乘客放弃选择公共交通出行以避免感染,而由于客流骤减使得运力和需求严重不平衡,导致运营效率的下降。
同时,伴随着城市公共交通系统的快速发展,公共交通管理信息系统产生了大量的乘客公交出行数据,如果通过使用这些数据预测捕捉未来乘客的变化趋势,将会极大帮助公共交通公司和方便乘客的出行。因此,基于COVID-19等数据,建立一个全面、准确科学的预测公交日客流量的模型,对乘客和企业都具有重要意义。这篇文章旨在预测疫情或者大范围疾病时期的公交客流量。主要的贡献可以简单总结为以下三个方面:
这篇文章分析了新冠疫情对公交客流的影响,并将新冠肺炎数据引入公共交通客流的预测。案例研究的实验结果证明,在预测COVID-19疫情期间的客流时,结合节假日、天气和COVID-19相关特征的模型比单一特征预测效果更好。即使是结合了这些特征的单一结构模型,其预测效果也比没有考虑这些特征的混合结构模型要好。
在本研究中,基于局部权重回归(STL)的季节趋势分解方法被应用于公交客流预测。公交客流时间序列有三种构成要素:趋势序列、季节序列以及残差序列。案例研究的实验结果表明,具有STL的模型在预测新冠肺炎疫情影响下的公交客流时比没有STL的模型具有更好的性能。
文章提出了一种用于客流预测的改进的STL-LSTM模型(ISTL-LSTM)。该模型由STL模型、客流相关特征模型以及三种长短时记忆网络组成。在案例研究中,实验结果表明,与其他模型相比,ISTL-LSTM模型取得了更高的准确性(至少提高15%)。因此,它可以为公共交通公司提供高精度的客流预测,有助于对COVID-19疫情做出更合理的安排。
模型
文章提出了一个混合深度神经网络模型(ISTL-LSTM),充分考虑到疫情期间各种影响因素,如节假日、天气等对客流的影响,结合历史客流数据对t时刻线网客流进行预测。模型主要包含九个捕捉:数据清洗、STL分解、数据融合、划分数据集、数据归一化、窗口滑动、预测、反归一化以及聚合。具体算法原理如下图所示:
Figure1 Flowchart of ISTL-LSTM
如图所示,模型一共由九个步骤,各个步骤实现功能如下:
Step1: Data cleaning
在最初的步骤,客流数据被处理为时间序列数据Y。特征数据,例如气候数据,假期数据等被处理获得n个特征。需要注意的是,Y和需要处理成相同的时间粒度。
Step2: STL decomposition
STL分解法最早由Cleveland在1990年提出,是时间序列分解中稳健通用的算法之一。该方法对数据中的离群值具有较好的鲁棒性,可以应用于大量时间序列数据。
给出时间序列Y,STL可以将t时刻的时间序列数据分解成三个组成成分:季节序列,趋势序列以及残差序列。
具体分解过程如下:
STL主要由两个循环组成,即一个内循环和一个外循环。内循环嵌套在外循环中。内部循环使用季节平滑和趋势平滑更新季节和趋势成分。每次内循环迭代后,计算残差成分。其循环的具体步骤有兴趣的读者可以参考原文。
Step3: Data fusion
对于平稳时间序列数据,直接预测而不使用额外的特征数据就可以得到良好的预测结果。然而,对于非平稳时间序列,直接训练往往难以获得较高的精度。因此,为了提高模型预测精度,非常有必要加入额外的特征。在该步骤,时间间隔作为关联字段,把每个子序列S,T,R与特征合并以得到新的子序列。
Step4: Division
在将数据放入模型前,时间序列数据应该以特定比例划分成训练集和测试集。分离为训练集和测试集。由于这是连续的时间序列数据,因此不需要在划分数据集时对数据进行打乱。
Step5: Normalization
不同特征通常有不同单位,这会影响数据分析。为了消除指标间不同单位的影响,需要对数据进行标准化以解决数据指标之间的可比性问题。对训练集和测试集分别进行归一化,即。
Step6: Window sliding
在预测之前,初始的时间序列数据需要进行标记。窗口滑动算法被广泛应用于这种情况。其原理是使用时间步(t+1)的数据作为时间步t的数据标签,并创建相应的标签集。
Step7: Prediction
这篇文章使用LSTM网络作为预测模型,因为其在时间序列数据方面优越的预测效果。它一种特殊的循环神经网络(RNN),旨在通过有选择地记忆历史信息来避免长期依赖问题。
LSTM在简单RNN网络上加入了三个门(gate):输入门(the input gate)、输出门(the output gate)以及遗忘门(the forget gate)如下图所示,所有这些都由Sigmoid单元控制。
Figure2 Illustration of LSTM
具体的LSTM结构此处不加以阐述,读者可以查阅相关内容了解其数学原理。
Step8: De-normalization
为了与原始时间序列数据进行比较和衡量模型的预测性能,预测结果需要进行反归一化,即。
Step9: Aggregation
在ISTL-LSTM模型的最后,预测结果需要聚合在一起。将预测结果根据相同权重相加,得到总体预测结果P,并进行评价。
总而言之,STL-LSTM预测模型是一个STL模型和三个相似的LSTM模型(使用相同超参数)的混合模型。基于STL-LSTM模型的ISTL-LSTM模型引入了客流的许多相关特征,采用不同的LSTM模型(超参数可以不同)。也就是说,ISTL-LSTM模型是将STL模型、三种LSTM模型以及客流相关特征结合而成的混合模型。
案例研究
案例研究部分以新冠肺炎疫情期间公交客流为对象进行预测研究。为了评估提出的ISTL-LSTM模型的预测效果,文章以STL-LSTM、LSTM、gated recurrent unit(GRU)、linear regression(LR)、k-nearest neighbor regression(KNR)以及extreme gradient boosting(XGBoost)为baseline进行案例分析。
(1)Data Description
本研究的数据来源分为四个部分:北京市公交系统每日客流量、节假日和周末、天气状况以及北京市新冠肺炎病例每日报告。数据的手机频率是每天,具体描述如下表:
Table1 Data Sources
图3为客流变化趋势和北京新冠肺炎确诊病例的比较示意图,时间从2019年11月到2020年10月,其中客流的趋势被表示为蓝色曲线,北京COVID-19确诊病例数表示为灰色曲线。由图3可知,自从2020年1月第一例确诊出现以后,北京的新增病例持续增长。从2020年1月份一直到4月,每天都有新增确诊病例,在这段时间确诊病例数目波动明显,有两个高峰期大约每日29人。在2020年4月,新增确诊病例突然降至接近0,这个情况持续了一个多月。紧接着疫情再次爆发,造成了每日新增确诊病例达到历史高峰,接近40人每天,然后在一个月内又迅速降到了0。总的来说,2020年北京疫情的每日新增病例波动存在两个阶段。第一个阶段是2020年1月到4月份;另一个阶段大约是从6月到7月。
COVID-19数据就像公交客流数据的气压计,与客流数据有着非常密切的关系。在2020年1月出现第一例确诊病例以后,北京公交的每日客流量突然减少,并且达到最低值,即没有乘客乘坐公交。在2020年3月,疫情仍然比较严峻,每日确诊病例数达到第二个高峰。由于疫情防控措施持续更新,一些居民在有效安全的措施保护下开始乘坐公交。因此,在这段时间内每日客流量缓慢增长并且没有明显波动一直到第二次疫情爆发。虽然6月份的疫情爆发严重影响了公交客流,大约减少了4000000人次,但影响并没有第一次爆发时严重。这种现象说明北京市全面实际的事前预防措施和及时高效的管理能力激发了市民选择公共交通出行的信心,所以乘客没有完全放弃使用公共交通出行在第二次爆发的初期。
Figure3 Curves of bus passenger flow and COVID-19 newly confirmed case
COVID-19的数据是由GitHub上获得。这些数据是由GitHub上一个网络爬虫客从一个名为DXY的实时COVID-19的网站所抓取。该网站汇总了全球每日确诊病例、累积治愈病例、累积死亡病例、新增确诊病例、存在确诊病例以及新增治愈病例等新冠肺炎疫情的综合官方统计数据。将收集到的北京市新冠肺炎数据(图4)进行筛选,并与北京市卫生健康委(BMHC)发布的新冠肺炎官方统计数据进行比较,从而形成最终的北京市新冠肺炎数据集。
Figure4 Curves of COVID-19 dataset
(2)STL Decomposition and Refusion
对数据进行预处理以后,需要对经过清洗以后的客流数据进行分解,然后将它们与清洗后的节假日数据、气候数据以及COVID-19特征整合在一起。
首先,STL方法以相同的权重将客流序列数据分解为趋势序列、季节性序列以及残差序列,结果如图5所示。三个子序列相加起来就是原始的客流序列数据。趋势序列描述了客流的总体趋势,季节性序列表现了客流数据的周期性变化,而残差序列则描述了其他特征。
接着,在分离步骤完成以后,子序列被当成新的客流时间序列。节假日数据集,气候数据集以及COVID-19数据集和每个子序列按每日为时间粒度整合至一起,得到三个新的数据集,融合趋势数据集、融合季节性数据集以及融合残差数据集。
Figure5 STL decomposition results of bus passenger flow
(3)Experimental Setup
在数据集的划分方面,文章划分70%的数据作为训练集,剩下30%为测试集,并分别进行归一化。根据大量的实验结果,深度学习模型(ISTL-LSTM, STL-LSTM, LSTM, GRU)的超参数设置如下:隐藏层数为2;每一层的神经元数量为100;训练迭代次数为50~150次,以步长5确定各模型的最佳迭代次数;接着batch size设置为400以覆盖所有时间步;dropout = 0.2;激活函数为Tanh函数,损失函数为均方差(MSE)函数,优化器选择Adam。具体超参数设置如下表所示:
Table2. Hyperparameters of deep learning models(ISTL-LSTM, STL-LSTM, LSTM, GRU)
至于KNR和XGBoost模型的超参数设置,具体如下表所示:
Table3. Hyperparameters of KNR and XGBoost models
关于评价指标的选取,文章选择了时序预测中常用的几个指标,即MAE、MAPE、RMSE以及VAPE,具体计算公式如下:
(4)Result and Discussion
如图6所示,不同深度学习模型(ISTL-LSTM, STL-LSTM, LSTM, GRU)的预测效果被比较。结果表明,当超参数“epochs”分别取65,100,65,50时,各个模型的预测效果达到最优。
Figure6. Prediction performance of four deep neural models: (a) performance of the ISTL-LSTM model(the performance was the best when epochs =65); (b) performance of the STL-LSTM model (the performance was the best when epochs = 100); (c) the performance of the LSTM model (the performance was the best when epochs = 65); (d) the performance of the GRU model (the performance was the best when epochs = 50)
图7比较了两个混合模型ISTL-LSTM和STL-LSTM模型的预测效果。真实数值,训练集的预测值以及测试集的预测值被图7所描述。图7a表示ISTL-LSTM的预测结果。考虑了假期数据,天气状况以及COVID-19的情况,预测值的波动情况较大,可以由训练集的预测曲线(橙色)看出来。测试集的预测值则十分接近于真实值,意味着误差很小,模型预测效果良好。图7b表示STL-LSTM的预测结果,其预测效果与ISTL-LSTM不同。在训练集上,其预测值在第75天到第100天时突然下降得更明显,其原因是该模型仅仅使用了前一天得客流数据去预测下一天的客流。另外,测试集的预测结果的方差也非常高。
Figure7. Comparison of the predicted value and the actual value in two hybrid models: (a) comparison results of the ISTL-LSTM model; (b) comparison results of the STL-LSTM model
Figure8. (a) Prediction curve of LSTM model with features; (b) prediction curve of the GRU model with features.
图8比较累两个单一结构神经网络模型(LSTM, GRU)的预测结果。正如上文提到,单一结构的模型其预测精度低于混合结构。因此,LSTM和GRU在测试集上的预测方差相比于混合结构要高很多,但由于这两个模型的输入特征于模型ISTL-LSTM一致,因此它们的预测曲线与ISTL-LSTM模型的预测曲线非常相似。至于LR, KNR和XGBoost等模型,这些模型的预测效果一般,方差非常高,因此不适用于高精度的预测。所有模型的预测结构比较如下表所示:
Table4. Performance comparison of the proposed model and other models. Bold means that these figures are the smallest in each column respectively, which means the best performance.
从上表可以看出来,在新冠肺炎疫情的影响下,GRU模型的预测效果最差。LR, KNR以及XGBoost的预测效果相对来说更好一点,但还是不如LSTM和混合模型(ISTL-LSTM, STL-LSTM)。因此,可以总结得到混合模型比单个模型的预测能力更强。一个有趣的事实是,结果表明LSTM模型预测效果要优于STL-LSTM模型,这表明在紧急情况(比如COVID-19)下,一些单一结构模型在考虑多重特征时,其预测效果要优于仅仅考虑单一特征(即客流数据)的混合结构模型,也证明了多重特征对于提升预测精度的重要性。
结论
这篇文章的主要目的是设计一个深度学习模型ISTL-LSTM去预测客流。在案例研究中,作者使用了北京在COVID-19疫情期间的数据去测试提出模型的预测性能。研究表明相比于部分单一结构的模型以及STL-LSTM混合模型,文章提出的ISTL-LSTM模型可以有效预测每日公交客流。预测精度至少提升了15%。文章的下一步研究是将公交总线指标系统的其他相关特征添加到所提出的模型中,并在此基础上采用集成模型进行子序列预测,这将进一步提高模型预测的准确性和鲁棒性。
Attention
如果你和我一样是轨道交通、道路交通、城市规划相关领域的,可以加微信:Dr_JinleiZhang,备注“进群”,加入交通大数据交流群!希望我们共同进步!