考虑日期属性和天气因素的铁路城际短期客流预测方法
2020-10-17李金洋
滕 靖,李金洋
(1.同济大学 交通运输工程学院,上海 201804;2.同济大学 上海市轨道交通结构耐久与系统安全重点实验室,上海 201804)
近年来,随着我国高速铁路网络的逐渐完善,生产要素在交通圈内的流动日益频繁,这又进一步助推了新型城镇化发展进程的不断加快。在此过程中,都市圈内的同城化效应开始显现,高速铁路城际客流规模不断扩大,并随之出现高密度、通勤化、随机性的新特征。因此,铁路运营企业有必要做好客流预测研究,科学合理地把握城市间客运需求状态,从而促进企业在科学优化资源配置、合理制定价格策略、动态优化产品结构和持续提升运输服务质量等方面不断进步。
客流预测是铁路企业运营决策和动态运营调整中最为关键的任务之一,同时也是支撑铁路客运产品设计向精细化发展的基础。根据时间尺度,铁路客流预测可以划分为长期、中期和短期预测3种类型[1]。短期预测一般以月份、星期、日为时间单位进行,其中又以以日为单位的预测最具挑战性。城际铁路的短期客流因受到周末、节假日、大型活动、天气等因素的影响,呈现出波动性大、随机性强的特点,为提高预测的准确性增加了难度。
从预测模型类别来看,常用的短期预测方法可以分为2 类[2]。第1 类方法是参数模型,包括指数平滑模型、灰色预测模型、自回归综合移动平均模型(ARIMA)等。这类方法在客流预测中较早得到应用,但其不足也比较明显,比如指数平滑模型难以对具有较大波动性的序列做出较好的预测;灰色预测模型可能会由于样本的稀疏性,导致预测结果出现较大偏差;ARIMA 模型不能很好地把握时间序列的非线性关系等。第2 类方法是非参数模型,包括支持向量机与神经网络模型等。其中,神经网络模型因其具有自适应性、非线性、任意函数性和映射能力等特点,在近年的铁路客流短期预测中得到了大量应用,成为研究的热点。
早期,相关研究多是以单独的神经网络模型进行预测,比如王艳辉等[3]建立了BP神经网络模型对铁路客流量进行了仿真预测,汪健雄等[4-5]和WANG Yao 等[6]则在传统BP 神经网络模型的基础上做了进一步改进,提高了模型的可扩展性;在BP 神经网络之外,吴华稳等[7]基于径向基神经网络,对铁路客运量进行了分析研究,也取得了不错的效果。然而,神经网络还存在一些固有的缺陷,如局部极小问题、隐单元数目的选择和过拟合的危险等,这些都有可能影响模型预测的精度和可解释性。为此,结合神经网络的组合预测模型近年来受到许多研究者的关注。比如曹承[8]将BP神经网络和模态分解算法结合起来构建组合预测模型;任崇岭[9]引入遗传算法,对神经网络模型进行进一步优化;史峰等[10]将模态分解算法、遗传算法和神经网络3种方法进行融合,对高速铁路平日客运量进行预测,取得了较好的预测效果。
从预测对象范围来看,早期的客流预测模型忽略了日期属性,导致预测结果不能很好地解释客流的异常波动。后有学者区别日期的节假日、非节假日属性,分别进行短期客流预测,这提升了预测精度,但却降低了模型的普适性。近来又出现新的研究趋势,将节假日、非节假日整体考虑,建立统一的预测模型,对日期属性做特殊标记,在体现节假日特殊性的同时又恢复模型的通用性能。然而,现有的研究在日期属性上的特征细分度还不够,实践中发现,日客流波动特征与日期所在月份、星期、节假日、甚至所在节假相邻日期的属性均有关系,有待于进一步细化研究日期属性带来的影响。
在前述研究的基础上,本文基于改进的神经网络模型对铁路城际客流进行短期预测:首先,基于2014—2018年间上海至南京单向铁路客流的历史数据,对铁路城际客流的波动特征及影响因素进行了分析;其次,综合考虑日期属性和天气因素,提出1 种结合粒子群优化(PSO)算法和长短期记忆(LSTM)神经网络模型的铁路城际短期客流预测方法;最后,以上海至南京的单向铁路客流为例,对本文提出的预测方法进行验证。
1 铁路城际客流波动特征及影响因素
1.1 日期属性对客流波动的影响
铁路城际客流的短期变化受多方面因素影响,并呈现出既基于自身长期演变趋势,又具有一定周期性、随机性波动的总体规律。以2014—2018年间,上海至南京的单向铁路客流(包括高速铁路、城际铁路以及普速铁路客流,以下简称“沪—宁铁路客流”)为例,观察其变化趋势。从长期来看,沪—宁铁路客流保持逐年增长的发展态势,如图1(a)所示;但若以更短的时间单位进行周期性观察,其客流变化还体现出不同的规律特征。
提取2017年全年的客流数据,以月为单位观察沪—宁铁路客流,结果如图1(b)所示。因受到暑假以及适宜度假的天气因素影响,夏季8月的客流规模稍高于同年其他月份。而2月处于不适宜出行的冬季,当月天数少于其他月份,又包含春节假期,对人们出行行为有较大影响,所以2月份的客流规模相对最低。
提取2017年11月1—28日客流数据,以星期为单位观察沪—宁铁路客流,结果如图1(c)所示。图中,每个星期的起点为星期二。可以看出,铁路城际客流呈现出以星期为周期的显著变化特征,星期五的客流会达到周期内的高峰,星期一则是周期低谷,而其他工作日的客流则相对平稳。
图1 日期属性对沪—宁铁路客流变化规律与分布特征的影响
为了进一步考察节假日的影响,以2017年清明小长假为例,提取2017年3月20日—4月16日共4 个星期的客流数据(其中4月2—4日为清明小长假),如图1(d)所示。可以看出,小长假的出现打破了客流原有的以星期为周期的变化规律,使客流在小长假的前1 d达到高峰,在小长假中间1 d形成1个相对低谷,在小长假最后1 d小幅反弹后,于小长假结束后的2 d 达到客流最低谷,如图中虚线所示。这一规律在历年的小长假中都可以得到印证,也说明了将节假日与非节假日综合起来进行预测,能够更全面地把握客流变化内在规律。
为此,本文将细分日期属性,综合考虑客流产生时的月份、星期以及是否处于或临近节假日,并将其影响纳入预测模型。
1.2 天气因素对客流波动的影响
以日为单位的铁路客流预测还需要考虑其独有的特征属性:天气。为排除周末因素对于客流的影响,选取2014年6月16日—7月3日共3 组 星期一至星期四的沪—宁铁路客流进行分析,如图2所示;对应日期上海的天气情况整理列表见表1。可以看出,同样是星期二到星期四,第1个星期以及第3 个星期的客流呈现逐步上升的趋势;而第2 个星期的客流则在星期三有所下降,原因是旅客的出行受到了天气因素(大到暴雨)的影响。因此,本文将气象特征如阴、晴、雨、雪等作为天气因素的衡量指标,与日期属性共同构成铁路城际短期客流的影响因素体系,以期提升预测的敏感度与准确性。
图2 2014年6月16日—7月3日共3组星期一至星期四的沪—宁铁路客流
表1 2014年6月16日—7月3日共3组星期1至星期4的上海天气情况
2 基于PSO-LSTM 的铁路城际短期客流预测方法
本文提出的考虑日期属性与天气因素的铁路城际短期客流预测方法,是1 种考虑多影响因素的PSO-LSTM 组合预测模型(后文简称PSOLSTM)。该方法应用了粒子群优化(Particle Swarm Optimization,PSO)算法和长短期记忆(Long Short-Term Memory,LSTM)神经网络模型,其框图如图3所示。预测的具体步骤是:①对铁路城际客流以及影响因素的历史数据进行预处理,将其转化为有监督学习的数据集;②用处理后的数据对LSTM 模型进行训练,并应用1种改进的PSO 算法对超参数进行优化,从而得到最优的预测模型;③将历史数据以及预测期的影响因素数据输入训练好的最优预测模型,对铁路城际客流进行预测,其中,用于预测的历史数据以及预测期长度可根据应用的实际需要进行设定。
2.1 数据预处理
考虑铁路城际短期客流的影响因素体系包括2方面:日期属性和天气因素。日期属性包括月份、星期、节假日共3个因素,其中节假日取我国法定节假日的首末2日和相邻日期,作为特殊的节假日属性进行处理。天气因素以出发城市的气象特征(如阴、晴、雨、雪等)来表征,这是因为与目的城市相比,出发城市的天气更能够直接影响旅客的出行决策。影响因素及其包含的取值见表2。
影响因素的取值兼顾了分类的简洁性和全面性。在节假日相关因素的取值中,考虑到清明节、端午节等春节以外的法定假日都具有相似的客流影响特征,将它们合并为1类;春节往往会带来大量的返乡、返工客流,对客流的时空影响范围较大,所以春节假期内的客流与其他小长假的客流变化趋势显著不同,故将春节单独列为1类。在气象特征的取值中,本文进行如下简化处理:对于气象类型,“甲转乙”的气象类型取前者,如“晴转多云”则记为“晴”;“甲到乙”的气象类型则取后者,如“小到中雨”记为“中雨”。对于气象类别,则是根据出发城市所处地理区位进行差异化的具体设置,比如表2中的取值,就是在查阅历年上海市气象特征的基础上,列出并涵盖所有上海市常见的气象特征。
图3 基于PSO-LSTM 模型的铁路城际短期客流预测方法框图
各日期属性与气象特征的取值都为离散变量,在输入模型时不宜采用1个连续的实数来表征;因此采用One-hot 编码方式对影响因素数据进行离散化的表达。One-hot 编码方式采用N位状态寄存器,对N个状态进行编码,每个状态都采用独立的寄存器位,并且在任意时间只有1位有效。这首先要求将分类值映射到整数值,再将每个整数值表示为二进制向量,其中,除了整数的索引被标记为1之外,其他的都被标记为0。比如对于具有7个状态的星期属性而言,就需要用7 个字节进行编码,见表3。
同理,具有12 个状态的月份属性需要用12 个字节进行编码,具有11 个状态的节假日属性需要用11 个字节进行编码,具有13 个状态的气象特征需要用13个字节进行编码。综上,在用One-hot编码方式对4个影响因素进行编码处理之后,新的影响因素序列扩充为12+7+11+13=43 列;加上客流数据列,共计44列。
在编码处理历史数据的基础之上,再根据模型预测的输入步长和输出步长将数据转化为有监督学习的数据集。其中,输入步长是指在预测模型的实际应用中需要输入的历史数据时间长度,而输出步长则是指模型预测的时间长度。比如本研究以14 d的历史数据预测未来7 d 的客流,那么转化为监督学习后的数据总共为44×14+43×7=917列。
表2 铁路城际短期客流影响因素指标体系
表3 表示星期属性的One-hot编码
2.2 长短期记忆神经网络模型
长短期记忆(Long Short-Term Memory,LSTM)神经网络是循环神经网络(Recurrent Neural Networks,RNN)的1 个变体,它能够学习输入数据中的长期依赖,并且可以缓解模型训练中梯度消失和梯度爆炸的问题,在处理具有非线性时间序列的数据时具有明显的优势[11-13]。虽然铁路城际客流在短期内的波动较大,但它仍然是基于长期客流变化的趋势以及近期客流水平的,具有非常显著的时间相关性。因此选用LSTM 神经网络模型,发挥其对于时间序列动态变化规律的把握能力,精细化提取和学习铁路城际短期客流演变特征,对客流做出精确预测。
在传统递归神经网络模型(RNN)的隐藏层的神经元中,LSTM 神经网络模型增加了1种被称为记忆单元的结构,用来记忆过去的信息;增加了3 种门(输入门、遗忘门、输出门)结构,用来控制历史信息的使用:忘记门控制记忆单元内需要遗忘多少信息,输入门控制每个记忆单元需要加入多少新信息,输出门控制每个记忆单元需要输出多少信息。LSTM 的神经单元结构如图4所示。其中,it,ft和ot分别为t时刻的输入门、遗忘门和输出门;~ct,ct和ht分别为t时刻的候选长期记忆、更新长期记忆和工作记忆,其中ht亦为t时刻的输出;xt为t时刻的输入;σ 为sigmoid 激活函数;tanh 为双曲正切激活函数;⊙表示逐点乘积。
图4 LSTM 的神经单元结构示意图
LSTM 神经单元中各部分的计算方法如式(1)—(6)所示:
式中:Wxi,Wxf,Wxo,Wxc表示与t时刻输入xt相关的权重矩阵;Whi,Whf,Who,Whc表示与前一时刻输出ht-1相关的权重矩阵;bi,bf,bo,bc为各个函数的偏置项。
LSTM 神经网络中的记忆单元使得模型适合处理和预测时间序列数据,但是学习率、隐藏层数以及训练次数这3 个超参数依然难以确定,而这3个超参数的设定又对模型的拟合能力、训练过程与训练效果有很大影响。在实际应用中,超参数的设置通常依赖经验,具有很大的随机性和主观性。因此引入粒子群智能算法,对上述LSTM 神经网络中的3个超参数进行优化。
2.3 改进的粒子群算法
粒子群优化(Particle Swarm Optimization,PSO)算法以其简单的操作和快速的收敛速度,广泛应用于各种优化问题的求解当中。在求解优化问题时,粒子群优化算法通过跟踪个体最优粒子和群体最优粒子来更新其速度和位置。这个过程可以描述如下:在1个D维的搜索空间中(即有D个待优化参数),共有m个粒子组成1个群体。在第t步迭代中,某1 个粒子的速度和位置分别为vt和xt;然后该粒子通过追踪当前该粒子的最优适应度pbest和群体的最优适应度gbest,根据式(7)更新自己的速度和位置。
vt+1=wvt+e1r1(pbest-xt)+e2r2(gbest-xt)(7)式中:w为惯性权重;e1,e2为学习因子;r1,r2为随机系数;pbest,gbest分别为个体极值和群体极值;xt为粒子在t时刻的位置。
由于基本的粒子群优化算法的全局寻优能力和收敛速度有限,本研究在经典算法之上又做了2 点改进。①在粒子的速度更新表达式中,惯性权重w原本取固定值,现改进为取值随迭代次数动态变化:即随着迭代次数的增加,令惯性权重以非线性速度递减,并且递减的速度随迭代次数递增,从而保证了算法的局部寻优能力。②在粒子的速度更新表达式中,学习因子e1和e2原本取固定值,现也改进为取值随迭代次数动态变化。其中,对应于局部最优解的学习因子e1随着迭代次数的增加由小到大变化,以加速粒子在前期的寻优速度;而对应于全局最优解的学习因子e2则随着迭代次数的增加由大到小变化,以在后期协助粒子的寻优精度。改进后的粒子群优化算法流程如下。
第1 步,初始化参数,确定种群规模、训练次数、学习因子以及位置的限定区间;
第2 步,初始化粒子的位置和速度,随机生成LSTM神经网络模型的3个超参数;
第3 步,确定粒子的评价函数,本方法采用LSTM 神经网络模型训练样本和测试样本精度的均值作为模型的适应度输出;
第4 步,计算每个例子对应位置的适应度,根据初始粒子适应度值确定个体极值和群体极值,并将每个粒子的最好位置作为其历史最佳位置;
第5 步,在每1 次迭代过程中,根据下式更新粒子的速度、位置以及惯性权重和学习因子,并根据新种群粒子适应度值更新粒子个体极值和群体极值。首先根据式(7)更新粒子的速度,然后根据式(8)—式(11)依次更新粒子的位置、惯性权重以及学习因子。
式中:t,tmax分别为当前迭代次数和最大迭代次数;vt为粒子在t时刻的速度;wmax,wmin分别为权重系数的上下界。
第6 步,满足粒子群优化算法最大迭代次数后,输出模型最优结果。
在最优模型的基础之上,将输入步长的历史数据和输出步长的预测期影响因素数据进行预处理,输入训练好的模型之中,即可得到预测期的铁路城际客流预测结果。
3 实例分析
上海和南京是长三角城市群的2 大核心城市,经济关联紧密,人员交流频繁。沪宁通道正处在京沪运输大通道和沿江运输大通道的重叠区域,通道内现有京沪既有线、京沪高铁、沪宁城际3条铁路线。本文即以上海至南京的O-D 客流为例,基于上文建立的PSO-LSTM 组合模型,对沪—宁铁路客流进行短期预测,验证模型的有效性。
3.1 数据的采集与处理
采集上海至南京2014年1月1日—2018年12月24日间,共计1 820 d 的单向铁路客流数据,以及5年间出发地上海的天气信息,其中月份、星期、节假日属性以及气象特征的取值释义见表4。
取前70%的数据作为训练样本,后30%的数据作为检验样本。首先根据2.1 节所述方法对原始数据进行预处理,对日期属性和天气因素进行One-hot 编码,并将编码后的数据转化为有监督的数据集。取预测的输入步长为14,输出步长为7,即以14 d 的历史数据预测未来7 d 的沪—宁铁路客流。因此最后预处理后的有监督数据集输入列数为917列,输出列数为7列。
表4 星期、月份、节假日属性以及气象特征的取值释义
将上述数据输入PSO-LSTM 模型中。根据尝试和经验,PSO 算法中的种群规模和迭代次数都设置为15,LSTM 神经网络的训练次数上下限分别设为10 和30,隐藏层数的上下限分别设置为8和64,学习率的上下限分别设置为0.000 1 和0.005 0。经过15 次迭代,得到的最优模型适应度为91.58%,其中训练集的训练精度为90.81%,测试集的测试精度为92.35%;所对应的LSTM 神经网络的训练次数、隐藏层数以及学习率分别为26,46 和0.001 9。LSTM 模型的最优训练次数、隐藏层数、学习率以及模型适应度随粒子群算法迭代次数的变化情况如图5所示。
用上述LSTM 模型,预测2018年12月25—31日的沪—宁铁路客流,其中12月30日和31日为2019年元旦假期的前2 d。将2018年12月11—24日共计14 d的沪宁铁路客流数据与影响因素数据,以及预测期的影响因素数据进行预处理,然后将处理后的数据输入LSTM 模型当中,得到未来7 d 的沪宁铁路客流预测结果,如图6所示。
3.2 模型的有效性验证
图5 最优训练次数、隐藏层数、学习率以及模型适应度的变化曲线
图6 基于PSO-LSTM 模型的沪—宁铁路客流预测值
为了验证模型的有效性,再建立PSO-LSTM-1、PSO-LSTM-2、PSO-LSTM-3、PSO-LSTM-4、PSO-BP 共5 种模型,将其与本文PSO-LSTM 模型进行对比。其中,PSO-LSTM-1、PSO-LSTM-2、PSO-LSTM-3、PSO-LSTM-4 模型分别是在原PSO-LSTM 模型中删除了气象特征、节假日属性、月份属性以及星期属性的模型;PSO-BP 模型则是将原PSO-LSTM 模型中的LSTM 模型,替换为已被广泛地应用于铁路城际短期客流预测的BP 神经网络。
本文建立的PSO-LSTM 模型,以及5 个对比模型最后的预测平均相对误差分别为:6.75%,8.39%,15.66%,13.34%,8.48% 和9.35%。其中预测平均相对误差ϵ的计算方法如式(12)所示。可见本文所建立的PSO-LSTM 模型具有最优的预测效果。
4 结论与展望
本文提出了1 种考虑多影响因素的PSOLSTM 组合预测模型。与以往的类似研究相比,本模型细分了日期属性和天气因素,设置了月份、星期、节假日等日期属性,晴,多云,中雨等天气因素;将日期属性和天气因素纳入客流预测的影响因素体系;利用LSTM 模型对于处理非线性时间序列的优势,提高模型的预测精度。采用上海到南京的单向铁路城际客流数据以及上海的天气信息进行预测验证,预测输入步长为14 d,输出步长为7 d,最终的预测平均误差为6.75%。与删除了1 个影响因素的PSO-LSTM 模型,以及结合了BP 神经网络的PSO-BP模型相比,本模型具有最优的预测精度。可见,全面考虑日期属性与天气因素的PSO-LSTM 模型具有较好的预测效果,可为铁路运营企业把握城市间短期客运需求状态提供参考依据。
未来,本方法可考虑从以下2 个方面进行改进。其一,铁路客流短期波动的影响因素仍然需要全面细致的研究。本文所考虑的天气和日期因素都是从需求侧分析客流的波动,然而城际铁路客流量也会受到供给侧因素的影响,比如不同类型列车以及不同席位的数量比例等。其二,本文是用5年的客流数据对模型进行训练,以14 d 的输入步长和7 d 的输出步长为例进行客流预测的,而模型中最优输入输出步长的设置,也需要结合实际做进一步的检验和优化。