• 查询稿件
  • 获取最新论文
  • 知晓行业信息
官方微信 欢迎关注

后疫情时代基于XGBoost的铁路客运站客流量预测研究

王平, 吴文波, 马毅华, 许江, 宗智诚

王平, 吴文波, 马毅华, 许江, 宗智诚. 后疫情时代基于XGBoost的铁路客运站客流量预测研究[J]. 铁路计算机应用, 2022, 31(1): 22-26. DOI: 10.3969/j.issn.1005-8451.2022.01.03
引用本文: 王平, 吴文波, 马毅华, 许江, 宗智诚. 后疫情时代基于XGBoost的铁路客运站客流量预测研究[J]. 铁路计算机应用, 2022, 31(1): 22-26. DOI: 10.3969/j.issn.1005-8451.2022.01.03
WANG Ping, WU Wenbo, MA Yihua, XU Jiang, ZONG Zhicheng. Research on passenger flow forecast for railway passenger station based on XGBoost in post-pandemic era[J]. Railway Computer Application, 2022, 31(1): 22-26. DOI: 10.3969/j.issn.1005-8451.2022.01.03
Citation: WANG Ping, WU Wenbo, MA Yihua, XU Jiang, ZONG Zhicheng. Research on passenger flow forecast for railway passenger station based on XGBoost in post-pandemic era[J]. Railway Computer Application, 2022, 31(1): 22-26. DOI: 10.3969/j.issn.1005-8451.2022.01.03

后疫情时代基于XGBoost的铁路客运站客流量预测研究

基金项目: 中国铁路上海局集团有限公司科研项目(2018179)。
详细信息
    作者简介:

    王 平,正高级工程师

    吴文波,高级工程师

  • 中图分类号: U293.13 : TP39

Research on passenger flow forecast for railway passenger station based on XGBoost in post-pandemic era

  • 摘要: 进入“后疫情时期”,铁路客流正逐步回升,但呈现较大波动,面对铁路提质增效的任务,准确预测客流量愈发重要。文章采用极端梯度提升(XGBoost,eXtreme Gradient Boosting)模型,以新冠肺炎疫情、天气和日期属性作为影响因素,选取上海站2016年1月1日—2020年7月27日客流量数据作为训练集和验证集,利用5折交叉验证和网格搜索(Grid Search)得到最优参数,并对上海站2020年7月28日—2021年5月17日的客流量进行预测,预测拟合度$ {R}^{2} $为0.812,总体预测效果较好。
    Abstract: Entering the post-pandemic era, railway passenger flow is gradually rising, but there is a large fluctuation. Facing the task of improving the quality and operation efficiency of railway, accurate prediction of passenger flow is becoming more and more important. In this paper, XGBoost model was adopted for passenger flow forecast with COVID-19 pandemic, weather, and date attributes as influencing factors. Meanwhile, passenger flow data of Shanghai Railway Station from January 1, 2016 to July 27, 2020 were selected as training set and validation set and the optimal parameters of the XGBoost-based passenger flow forecast model were obtained by using 5-fold cross-validation and Grid Search. Then, the passenger flow of Shanghai Railway Station from July 28, 2020 to May 17, 2021 was predicted using this model. The result of the prediction attained a fitting degree of 0.812, indicating that the overall prediction effect is good.
  • 客流量是铁路客运组织的依据,准确预测客流量能够辅助客运部门合理规划与管理客运运营,更好地满足旅客出行需求和提升客服质量,对于增加铁路客运收益和降低运营风险具有重要意义。新冠肺炎疫情爆发以来,国家铁路正常运营遭受严重影响,对铁路客运运营的短期影响尤为显著[1],2020年上半年全国铁路发送旅客8.18亿人次,同比下降53.9%[2]。随着我国进入“后疫情时期”,铁路客流正逐步回升,但也呈现出较大波动,面对铁路提质增效的任务,准确预测客流量显得愈发重要。

    目前,国内关于铁路客流量预测已有不少的研究,采用的方法主要包括:灰色预测法[3-4]、支持向量回归机[5-6]、组合预测法[7]等。这些铁路客流量方法各有优势,针对的预测对象也有所不同,但在样本数据集选择方面,极少有研究使用新冠肺炎疫情期间铁路客流数据进行预测。此外,新冠肺炎疫情期间,铁路客流存在较大的波动性和随机性,加大了准确预测客流量的难度,亟需探索新的客流量预测方法。

    本文尝试采用极端梯度提升(XGBoost,eXtreme Gradient Boosting)模型,以上海站为例,选用包含新冠肺炎疫情期间的样本数据,研究将XGBoost模型应用于铁路大型客运站客流量的预测。

    新冠肺炎疫情爆发前,铁路客流量呈现一定的周期性波动,新冠肺炎疫情在国内爆发后,铁路客流量出现断崖式下跌。以上海站为例,2016年—2021年客流量总体变化趋势如图1所示。结合图2,黄色曲线为新冠肺炎疫情本土确诊人数曲线,蓝色曲线为客流量曲线,红色竖线是客流量出现断崖式下跌的时间点,对应日期为2020年1月23日,正是新冠肺炎疫情在国内爆发的时间。此后,客流量虽有一定回升,但整体仍低于新冠肺炎疫情前的同期客流量。为此,考虑将新冠肺炎疫情本土新增确诊人数和本土现存确诊人数作为反映疫情因素的特征,以期提高预测的敏感度与准确性。

    图  1  2016年—2021年上海站客流量总体变化趋势
    图  2  新冠肺炎疫情本土确诊人数和客流量关系曲线

    观察图3,夏季8月份的客流量略高于其它月份,而冬季2月份的客流量略低于其它月份。

    图  3  上海站1年内客流量变化(1月—12月)

    出现这种现象的主要原因是:

    (1)温暖天气相较于寒冷天气更适宜出行;

    (2)8月份正值我国铁路暑运期间,铁路客流以学生暑假返家、开学返校为主。

    天气温暖和寒冷可以采用气温进行量化,以便于算法处理。春运时间为每年农历腊月十五—次年正月廿五,暑运时间为每年7月初—9月初。如图4所示,1月和2月气温最低,对应春运的时间区间,7月和8月气温最高,对应暑运的时间区间,即春运和暑运与气温高低强相关。为此,本文选取气温(包括当日最高气温和当日最低气温)作为天气特征纳入预测模型。

    图  4  上海市1年内气温变化(1月—12月)

    以1个星期为单位,对2016年1月1日—2021年5月17日上海站的客流量进行分析,如图5所示。星期六客流量在1个星期中为最高,星期五其次,其它日无显著差异。

    图  5  上海站1个星期内客流量变化(2016年1月1日—2021年5月17日)

    进一步分析同一时期内节假日对上海站客流量的影响,如图6所示。

    图  6  上海站节假日客流量变化(2016年1月1日—2021年5月17日)

    由图6可知,节假日相比工作日客流量有明显的增加,节假日前1天客流量不仅显著高于工作日客流量,并且略高于假期平均客流量,而假期中第2天的客流量与工作日无明显差异。

    为此,细化日期属性,法定节假日和周末统称为假期,将月份、星期、当天是否为假期、前1天是否为假期、第2天是否为假期作为日期特征纳入预测模型。

    XGBoost是由陈天奇等人[8]提出的一种改进的梯度提升决策树(GDBT,Gradient Boosting Decision Tree)算法。

    对于一个给定n个样本的数据集D= $\left\{\right({{x}}_{{i}}, {{y}}_{{i}}\left)\right\} $$ ({i}=\mathrm{1,2},\cdots,{n})$${{x}}_{{i}}$ 表示第 i 个样本的特征值集合,${{y}}_{{i}}$表示第i个样本的标签值,则基于数据集D训练得到的具有K个基学习器的XGBoost预测模型为

    $$ \widehat{{y}}={\Phi }\left({{x}}_{{i}}\right)=\sum _{{k}=1}^{{K}}{{f}}_{{k}}\left({{x}}_{{i}}\right),{{f}}_{{k}}\in {F} $$ (1)

    其中,$\widehat{{y}}$表示模型的预测值,${{{K}}}$表示树的数目,${{f}}_{{k}}$为第k棵树模型,F表示基学习器的假设空间。

    XGBoost模型的目标函数L包含2部分:

    $$ {{{{{L}}}}=}\sum _{{i}=1}^{{n}}{l}({{y}}_{{i}},\widehat{{{y}}_{{i}}})+\sum _{{k}=1}^{{K}}{\Omega }\left({\mathrm{f}}_{{k}}\right) $$ (2)
    $$ \Omega ({{f}}_{{k}})={\gamma }{T}+\frac{1}{2}{\lambda }\sum _{{j}=1}^{{T}}{{\omega }}_{{j}}^{2} $$ (3)

    其中,${l}({{y}}_{{i}},\widehat{{{y}}_{{i}}})$为训练误差,${\Omega }\left({{f}}_{{k}}\right)$表示模型的复杂度,${{{T}}}$表示叶子节点个数,${\gamma }$${\lambda }$ 表示惩罚项的权重参数。

    在寻找最佳${{f}}_{{k}}\left({{x}}_{{i}}\right){的}{过}{程}{中}$,通过不断迭代来最小化目标函数,第 t 次迭代的目标函数可改写为

    $$ \begin{aligned} {{L}}^{\left({t}\right)}&=\sum _{{i}=1}^{{n}}{l}({{y}}_{{i}},\widehat{{{y}}_{{i}}})+\sum _{{k}=1}^{{K}}{\Omega }\left({{f}}_{{k}}\right)\\ & \text=\sum _{{i}=1}^{{n}}{l}({{y}}_{{i}},{\widehat{{{y}}_{{i}}}}^{({t}-1)}+{{f}}_{{t}}({{x}}_{{i}}\left)\right)+{\Omega }\left({{f}}_{{t}}\right) \end{aligned} $$ (4)

    对式(4)进行二阶泰勒近似展开,去掉常数项,其中, $ {g}_{i} $$ {h}_{i} $ 分别是损失函数${l}$的一阶导数和二阶导数,即有

    $$ {{L}}^{\left({t}\right)}\cong \sum _{{i}=1}^{{n}}\left[{g}_{i}{{f}}_{{t}}\right({{x}}_{{i}})+\frac{1}{2}{h}_{i}{{{f}}_{{t}}}^{2}({{x}}_{{i}}\left)\right]+{\Omega }\left({{f}}_{{k}}\right) $$ (5)
    $$ {g}_{i}=\frac{\partial {l}({{y}}_{{i}},{\widehat{{{y}}_{{i}}}}^{({t}-1)})}{\partial {\widehat{{{y}}_{{i}}}}^{({t}-1)}} $$ (6)
    $$ {h}_{i}=\frac{{\partial }^{2}{l}({{y}}_{{i}},{\widehat{{{y}}_{{i}}}}^{({t}-1)})}{\partial {\widehat{{{y}}_{{i}}}}^{({t}-1)}} $$ (7)

    对式(5)进行优化,定义$ {I}_{j}=\left\{i\right|q\left({x}_{i}\right)=j\} $为落入叶子节点j的样本集合,可计算出最优权重$ {\omega }_{j}^{*} $和相应的最优值为

    $$ {\omega }_{j}^{*}=-\frac{\sum _{{i}\in{{I}}_{{j}}}{{g}}_{{i}}}{\sum _{{i}\in{{I}}_{{j}}}{{h}}_{{i}}+{\lambda }} $$ (8)
    $$ {{L}}^{\left({t}\right)}=-\frac{1}{2}\sum _{{j}=1}^{{T}}\frac{{\left(\sum _{{i \in {I}}_{{j}}}{{g}}_{{i}}\right)}^{2}}{\sum _{{i}\in{{I}}_{{j}}}{{h}}_{{i}}+{\lambda }}+{\gamma }{T} $$ (9)

    相比于传统的GDBT算法,XGBoost模型利用了损失函数的二阶导数信息,能加快算法收敛,并且在目标函数中增加了正则惩罚项,可降低模型复杂度,从而防止模型过拟合。

    基于XGBoost的铁路客流量预测方法是一种综合多因素方法,考虑疫情、天气、日期等因素对铁路客流量的影响,具体步骤为:

    (1)收集客流数据以及影响客流量的主要因素的历史数据,进行数据预处理,生成用于XGBoost模型的样本数据;

    (2)将样本数据划分为训练数据集和测试数据集2部分;

    (3)运用k折交叉验证将训练数据集划分为k份,每次选择其中k-1份作为训练集,另外一份作为验证集,对XGBoost模型进行训练,并使用网格搜索(Grid Search)进行参数优化,得到最佳预测模型;

    (4)使用训练好的XGBoost模型对测试数据集进行预测。

    从铁路客票系统中抽取上海站2016年1月1日—2021年5月17日的共计1965天的客流量数据,另从互联网上收集同一时间段内新冠肺炎疫情本土新增确诊人数和本土现存确诊人数、上海市每日最高与最低温度,以及假期日期。将前85%数据(即2016 年 1 月 1 日—2020 年 7 月 27 日的客流量数据)作为训练样本和验证样本,后15%数据(即2020 年 7 月 28 日—2021 年 5 月 17 日的客流量数据)作为测试样本,进行如下处理:

    (1)对日期特征进行预处理,对月、星期进行One-hot编码,对假期进行哑编码,将编码后的数据转化为有监督的数据集;

    (2)考虑到当日客流量除受到同期因素的影响,还可能与前期值有关,采用客流量的滞后变量作为特征;

    (3)为了消除预测的随机波动,利用简单移动平均法,生成前5天平均客流量和前10天平均客流量作为客流量特征。

    预处理后的有监督数据集输入列数为36列,输出列数为1列。考虑到样本容量较小,在模型训练阶段,采用k折交叉验证(k=5)进行训练,以提升模型性能。

    建模软件选用Python 3.8,将预处理后的数据输入XGBoost模型,使用Grid Search进行参数搜索,寻找模型最优参数。XGBoost模型的学习率设置为0.02,叶子节点训练样本最小数量设置为50,迭代算法为GDBT。

    图7为上海站实际客流量与XGBoost模型预测结果对比,红色曲线为实际客流量,绿色曲线为使用XGBoost模型经1685次迭代计算后得到上海站客流量预测结果。

    图  7  上海站实际客流量与XGBoost预测结果(2020年7月28日—2021年5月17日)

    使用拟合度$ {R}^{2} $对XGBoost模型的预测误差进行量化分析,拟合度$ {R}^{2} $的计算方法为

    $$ {R}^{2}=1-\frac{\displaystyle\sum _{{i}=1}^{{n}}{(\mathrm{第}{i}\mathrm{天}\mathrm{真}\mathrm{实}\mathrm{值}-\mathrm{第}{i}\mathrm{天}\mathrm{预}\mathrm{测}\mathrm{值})}^{2}}{\displaystyle\sum _{{i}=1}^{{n}}{(\mathrm{第}{i}\mathrm{天}\mathrm{真}\mathrm{实}\mathrm{值}-{n}\mathrm{天}\mathrm{真}\mathrm{实}\mathrm{平}\mathrm{均}\mathrm{值})}^{2}} $$ (10)

    将测试样本的真实值和预测值代入公式(10),计算得到$ {R}^{2} $=0.812;由图7$ {R}^{2} $可知,XGBoost模型的总体预测效果较好,但预测的峰谷值偏差较大,究其原因可能是新冠肺炎疫情导致的“报复性”出游,使得节假日旅客出行规模相较于以往同期呈现出更强的波动性和随机性,例如:2021年5月1日上海站客流量是2020年同期的1.76倍,在最近的6年间仅次于2019年5月1日客流量,如表1所示。

    表  1  2016—2021年上海站客流量(从大到小排序)
    序号日期客流量(人次)
    12019-05-01189841
    22021-05-01187263
    32019-10-01184243
    42018-10-01179396
    .........
    222016-10-01153110
    .........
    272017-04-29149480
    .........
    2122020-05-01105975
    .........
    下载: 导出CSV 
    | 显示表格

    基于XGBoost模型,选取新冠肺炎疫情、天气、日期等影响铁路客流量的主要因素为特征,以上海站为例,对后疫情时期近一年的铁路客流量进行预测,预测拟合度$ {R}^{2} $=0.812,总体预测效果较好,但预测的峰谷值偏差较大。

    后续将考虑更为精准地选取影响铁路客流量的相关因素,通过优化预测模型的特征集,以进一步提高客流量预测的准确性。比如:新冠肺炎疫情数据仅依靠本土新增确诊人数与本土现存确诊人数无法反映对铁路客流量的影响,可加入疫情防控应急响应等级等因素;目前的预测模型以气温代替春运和暑运的因素,后续可考虑在XGBoost预测模型中增加春运和暑运具体日期因素。

  • 图  1   2016年—2021年上海站客流量总体变化趋势

    图  2   新冠肺炎疫情本土确诊人数和客流量关系曲线

    图  3   上海站1年内客流量变化(1月—12月)

    图  4   上海市1年内气温变化(1月—12月)

    图  5   上海站1个星期内客流量变化(2016年1月1日—2021年5月17日)

    图  6   上海站节假日客流量变化(2016年1月1日—2021年5月17日)

    图  7   上海站实际客流量与XGBoost预测结果(2020年7月28日—2021年5月17日)

    表  1   2016—2021年上海站客流量(从大到小排序)

    序号日期客流量(人次)
    12019-05-01189841
    22021-05-01187263
    32019-10-01184243
    42018-10-01179396
    .........
    222016-10-01153110
    .........
    272017-04-29149480
    .........
    2122020-05-01105975
    .........
    下载: 导出CSV
  • [1] 林晓言,李明真,陈小君. 疫情对我国铁路行业发展的影响与对策 [J]. 铁道经济研究,2020(2):1-6. DOI: 10.3969/j.issn.1004-9746.2020.02.001
    [2] 新华社. 上半年全国铁路发送旅客8.18亿人次[EB/OL].(2020-07-09)[2021-06-22]. http://www.xinhuanet.com/travel/2020-07/09/c_1126214823.htm.
    [3] 黄召杰,冯 硕. 灰色预测模型在铁路客流预测中的应用 [J]. 交通科技与经济,2014,16(1):57-60. DOI: 10.3969/j.issn.1008-5696.2014.01.016
    [4] 曹鸿飞,张 铭,李 平. 灰色动态模型群在城市轨道交通客流预测中的应用研究 [J]. 铁路计算机应用,2012,21(3):1-3,8. DOI: 10.3969/j.issn.1005-8451.2012.03.001
    [5] 郭 淼. 基于支持向量回归的大型客运站客流量预测应用研究 [J]. 铁路计算机应用,2021,30(3):15-18. DOI: 10.3969/j.issn.1005-8451.2021.03.004
    [6] 孟 歌,王洪业,李丽辉,等. 基于EMD的SVR方法在铁路客流预测中的应用 [J]. 铁路计算机应用,2020,29(4):28-32. DOI: 10.3969/j.issn.1005-8451.2020.04.007
    [7] 滕 靖,李金洋. 考虑日期属性和天气因素的铁路城际短期客流预测方法 [J]. 中国铁道科学,2020,41(5):136-144. DOI: 10.3969/j.issn.1001-4632.2020.05.16
    [8]

    CHEN TIANQI, GUESTRIN CARLOS. XGBoost: A Scalable Tree Boosting System[C]// In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD '16). New York, USA: Association for Computing Machinery, 2016: 785–794.

  • 期刊类型引用(4)

    1. 王芳,闫安,高萌,张宇昂,金鹭,户佐安. 考虑疫情影响的铁路旅客周转量SVM-XGBoost组合模型预测方法. 综合运输. 2024(05): 114-121+134 . 百度学术
    2. 刘妙男,王魏,胡显辉,许德昊. 基于因果卷积和Informer模型的城市公交客流预测. 控制工程. 2024(08): 1445-1454 . 百度学术
    3. 王建圣,李骞. 基于GM(1, 1)–SARIMA组合模型的铁路客运量预测研究. 建筑技术开发. 2023(09): 65-68 . 百度学术
    4. 李志,摆倩倩,叶博嘉. 后疫情时期的机场旅客吞吐量预测. 航空计算技术. 2022(06): 40-44 . 百度学术

    其他类型引用(7)

图(7)  /  表(1)
计量
  • 文章访问数:  223
  • HTML全文浏览量:  127
  • PDF下载量:  59
  • 被引次数: 11
出版历程
  • 收稿日期:  2021-06-21
  • 刊出日期:  2022-01-27

目录

/

返回文章
返回