基于SVM的铁路货运站装车数预测
2019-04-03余姣姣
余姣姣
(兰州交通大学 交通运输学院,甘肃 兰州 730070)
1 引言
铁路货物运输是一个受自然条件、经济发展、社会状况和自身供给等多方面因素影响的复杂综合系统,是资源配置和宏观调控的重要工具。铁路货运量作为交通运输的一个客观反映,对其的准确预测是制定铁路发展规划、开展铁路市场营销的重要环节。而铁路货运站装车数作为铁路货运量的重要组成部分,对其进行预测对铁路货运部门制定装车计划等非常重要。
目前,已有多种方法用于铁路货运量的预测,并取得较好的成果,主要有分形理论[1]、马尔可夫链[2]、回归分析[3]、复杂网络理论[4]、神经网络理论[5]、支持向量机[6-7]、灰色预测[8]等。然而现有的文献还没有对铁路货运站装车数的预测,所以本文将以广铁集团的岳阳北和湘潭东等货运站为例对铁路货运站装车数做出预测。
支持向量机(Support Vector Machine,SVM)是一种新型的神经网络,是基于结构风险最小化准则的学习方法,该方法以统计学习理论为基础,在小样本、高维、非线性预测领域有着很好的应用效果[7、9]。在数据较少的情况下,可以较好地描述铁路货运站装车数的非线性及随机性特征,提高预测精度。粒子群优化算法(Particle Wwarm Optimization,PSO)是一种基于群体智能的全局随机搜索算法,可用于非线性及复杂优化问题的求解[10]。
本文以广铁(集团)公司2017年3月至2017年7月的装车数为研究对象,从中选取岳阳北和湘潭东等货运站为例,采用相空间重构将时间序列数据重构成多维,运用粒子群算法优化支持向量机参数,从而建立预测模型。实例分析的结果验证了该方法的有效性,为铁路货运调度及货运站对装车计划的安排布局提供了依据,并优化资源配置,提高铁路货运的效益。
2 铁路货运站装车数预测方法
2.1 相空间重构
式中:m为嵌入维;N为时间序列的数据个数;r为计算中所取的搜索半径;τ为时间延迟;M=N-(m-1)τ,为m维相空间中嵌入点数目;dij=||xi-xj||∞,为∞范数;θ为Heaviside函数,其表达式为:
相空间重构中有两个关键的参数:嵌入维数m和时间延迟τ。Takens定理中,对于理想的无限长和无噪声的一维时间序列,嵌入维数m和时间延迟τ可以取任意值,但实际应用中的时间序列都是有限长度且存在噪声,嵌入维数m和时间延迟τ不能任意取值,须精心确定,否则会极大地影响重构的相空间的质量[11]。确定嵌入维数m和时间延迟τ的方法有多种,本文选用C-C算法进行联合计算。
考虑混沌时间序列x={xi,i=1,2,...,N},重构相空间X={Xi},Xi为m维相空间中的相点:则嵌入时间序列的关联积分为
关联积分为累积分布函数,表示相空间中任意两点之间距离小于r的概率。另外定义x={xi}的检验统计量:
S(m,N,r,τ)反映了时间序列的自相关特性,最优时间延迟τd可取S(m,N,r,τ)第1个零点。
选择最大和最小的半径r,定义差量:
ΔS(m,N,r,τ)度量了 S(m,N,r,τ)对所用半径 r的最大偏差。
综上所述,最优时间延迟τd可取S(m,N,r,τ)的第1个零点或ΔS(m,N,r,τ)的第1个局部极小点。
根据m和 k(r=kσ/2)的取值设定nm和nk的值,定义指标:
寻找Scor(τ)的全局最小点即可获得最优延迟时间窗口τw。
本文采用陆振波的工具箱对各车站的数据进行相空间重构,其中采用C-C Method求出各组数据的时间延迟τd和时间窗口τw,然后根据延迟时间、嵌入维数和时间窗口三者之间的关系τw=(m -1) τd求得相应的嵌入维数。
2.2 支持向量机
支持向量机[12-14]是Corinna Cortes和Vapnik等于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能推广应用到函数拟合等其他机器学习问题中。它是建立在统计学习理论的VC维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力。
给定一数据点集G={(xi,di)},其中 xi是输入向量,di是期望值,n是数据点的总数。SVM使用非线性映射φ:Rn→Rm(m≥n),将输入空间映射到高维特征空间,再在特征空间中使用式(6)来拟合数据{(φ(xi),di)。
其中w、φ(x)为m维向量;⋅,⋅ 表示特征空间中的点积;b为阈值。
系数w、b通过最小化式(7)来估计。
不敏感损失函数由式(8)确定。
此时为有限性约束的二次规划问题。引入拉格朗日乘子,由式(6)给出的决策回归方程可改写为:
其中,d>0,σ>0,b>0,δ>0,称为核参数。本文选取高斯径向基核函数为本文预测的核函数。
2.3 PSO优化SVM
粒子群优化算法(PSO)[15]是一种进化计算技术,是由Eberhart博士和kennedy博士在1995年提出的一种新的全局优化进化算法,源于对鸟群捕食的行为研究,与遗传算法类似,是一种基于迭代的优化工具。
支持向量机中惩罚参数c、核参数、不敏感损失参数ε是决定预测性能的三个重要参数,利用PSO对SVM的参数进行优化选择,对提高预测性能具有重要的意义。相关步骤如下:
Step1 设置PSO初始参数,如种群数、迭代数、变异率、交叉率等,随机产生一组粒子的初始位置和速度。
Step2 选择适应度函数,本文选择均方误差作为适应度函数来判断参数选择的优劣,均方误差函数的表达式如下:
其中,xi为实际值,yi为预测值,n为预测个数。
Step3 根据两个对比更新粒子的位置。当前适应度值和所经历过最好位置pbest对比,若当前适应度好,则更换当前适应度值为最好位置;当前适应度值与全局最优位置gbest对比,若当前适应度好,则更换当前适应度值为全局最优位置。
Step4 按照式(11)和(12)对粒子的速度和位置进行更新。
其中,ω表示惯性权重;d=1,2,...,D;i=1,2,...,n;k为迭代次数;Vid为粒子的速度;c1,c2为加速因子;r1,r2是介于0到1之间的随机数。
Step5 判断是否到达最优,若满足,输出最优参数值;若不满足,转Step2。
2.4 货运站装车数预测模型
本文通过粒子群算法优化选取SVM的最佳参数,建立预测模型,具体步骤如下:
Step1 采用小波降噪的方法对原始数据进行降噪处理,以提高预测的精度。
Step2 通过陆振波的相空间重构工具箱中C-C方法将一维时间序列数据重构成多维。
Step3 将多维数据分为训练样本和测试样本,并分别进行归一化处理,将数据归一化到[0,1]区间,本文采用最大最小法对数据进行归一化处理,具体公式为:
其中,xmin为序列中最小的数值,xmax为序列中最大的数,xk为实际数值,x为归一化后的数值。
Step4 参数优化。初始化粒子群,运用PSO对SVM进行参数优化,对比更新粒子的速度和位置,从而得到优化的参数,本文采用林智仁教授的libsvm工具箱中psoSVMcgForRegress函数进行参数优化。
Step5 利用得到的最优参数,并采用libsvm工具箱中SVMcgForRegress函数进行模型的训练,建立预测模型并对测试样本进行预测,再将结果反归一化,得到原始数据的预测值。
3 实例分析
利用所建立的模型对广铁(集团)公司的岳阳北、湘潭东等货运站2017年3月至2017年7月的装车数在Matlab R2014a进行实例分析,两个车站的预测结果与真实值的对比如图1、图2所示。两个车站预测值与真实值的误差量如图3、图4所示。
图1 岳阳北装车数真实值与预测值
从图1和图2可以明显看出,岳阳北站装车数拟合效果非常好,预测值和真实值基本重合,结合图3和图4可以看出,湘潭东车站的误差明显较大。采用本文SVM预测模型和灰色预测的预测性能具体见表1,选用平均误差ME、平均绝对误差MAE、平均绝对百分比误差MAPE、均方误差MSE和均方根误差RMSE为评价指标。
从以上图表可以看出,岳阳北的预测性能明显比湘潭东好,岳阳北的拟合效果较好,而湘潭东的误差相对较大。为了比较分析SVM模型的预测性能,另外采用灰色GM(1,1)预测方法对两个车站进行预测,预测性能见表1,从中明显可以看出,各项误差指标SVM模型均比灰色GM(1,1)预测小的多。因此,采用支持向量机的预测效果整体上明显比灰色预测好。
经分析可知,不同车站采用SVM模型的预测性能不同,主要是因为相空间重构采用C-C方法所确定的时间窗口和时间延迟不同,导致所重构的数据维数相差较大,从而导致了较大的预测误差。
图2 湘潭东装车数真实值与预测值
图3 岳阳北装车数误差量
图4 湘潭东装车数误差量
4 结论
本文采用相空间重构将一维时间序列重构成多维用于SVM的输入,并用PSO对SVM参数进行优化,建立模型对广铁(集团)公司的岳阳北和湘潭东两个车站装车数进行预测,有一定的参考价值,但由于不同数据进行相空间重构的嵌入维数和时间延迟不同,导致误差变化较大,所以在后续研究中,将对此作进一步改进,以提高货运站装车数的预测精度。
表1 预测性能