一种基于GRU神经网络的公交到站时间预测方法
技术领域
本发明涉及城市公交的监控及到站时间预测技术,具体涉及一种基于GRU神经网络的公交到站时间预测方法。
背景技术
公共交通是关系国计民生的重要基础设施,发展信息化、智能化的先进公交***对提高城市公共交通管理和服务水平具有积极意义。公交车辆调度管理是先进公交***的核心,而公交车辆到站时间是公交车辆动态调度管理的关键参数,传统公交排班是根据经验所判断的固定站间行驶时间间隔来对到站时间进行仿真。通常,这种方法制作出来的预估时间表误差性大、拟合程度低,不能反映出真正的情况。
到站时间预测对于提高公交车辆准时性,减少乘客等待时间,方便乘客合理分配出行时间提供了重要帮助。国内外学者在公交车辆到站时间预测方面做了大量的研究,提出的预测模型主要有时间序列(Time Series,TS)模型、人工神经网络(Artificial NeuralNetwork,ANN)模型、支持向量机(SupportVector Machines,SVM)模型以及Kalman滤波模型等。Yang等人在与测试,通过对时间序列中的不平稳数据进行差分处理,建立了自回归移动平均时间序列模型,通过残差分析及数据拟合,对到站时间进行了预测,但是该模型序列中白噪声影响严重,导致最终预测精度不高;熊文华等人通过BP网络,以浮动车和线圈所记录的数据作为网络输入,以车辆行程时间作为输出,该模型需要大量数据进行拟合,参数调优复杂。
发明内容
针对上述现有技术中对公交到站时间预测的误差大及其预测的拟合度无法反映公交到站真实情况的问题,本发明于提出一种基于GRU神经网络的公交到站时间预测方法,具体技术方案如下:
一种基于GRU神经网络的公交到站时间预测方法,所述方法包括:
S1、由数据库导出历史数据至CSV格式文件,获取原始数据,利用HBase分布式数据库和Spark内存处理技术对所述原始数据进行分析处理去除所述原始数据的混杂性、复杂性和系数性;
S2、基于单一属性和多因子角度采用特征相关性研究法处理分析处理后的所述原始数据,得到标准时间序列类型数据;
S3、利用Lasso方法对所述标准时间序列类型数据进行变量选择,剔除所述标准时间序列类型数据中关联性弱的特征向量;
S4、基于GRU神经网络构建公交的到站预测模型,输入已剔除关联性弱特征向量的所述标准时间序列类型数据至所述到站预测模型,实现对公交到站的时间预测操作。
进一步的,步骤S1包括:
S11、利用SparkSQL从HDFS中获取所述CSV格式文件,形成Spark DataFrame结构数据;
S12、利用SparkSQL提取指定公交的历史GPS轨迹数据,并利用HBase分布式数据库将所述历史GPS轨迹数据与公交站点距离进行匹配。
进一步的,所述利用HBase分布式数据库将所述历史GPS轨迹数据与公交站点距离进行匹配,包括:
S121、设定一特定值用于判断所述匹配是否小于公交的指定到站地点,若所述匹配的结果小于所述特定值,则标记与所述匹配对应的公交到站地点;
S122、将所述匹配按时间顺序任取时间间隔大于t秒的两个GPS定位点,根据两个定位点连线的斜率判断公交的上下行运行状况;
S123、选取所述匹配中与站点最近的定位时间,基于公交的运行速度和加速度,记录到站时间;
S124、以到站时间和公交对应的车辆号对所述原始数据进行排序,并利用Spark输出存储至HDFS中。
进一步的,所述公交到站地点与实际定位地点的距离通过Greate-Circle距离计算公式计算,所述Greate-Circle距离计算公式为:
其中,R是地球半径,Aj,Aw分别为实际定位地点的经度、纬度;Bj,Bw分别为公交到站地点的经度、纬度。
进一步的,所述斜率的计算过公式为:
式中,Dlon、Dlat代表线路上行终点站经度、纬度,Slon、Slat代表线路上行起点站经度、纬度,Alon、Alat代表后车辆行驶轨迹的后一站经度、纬度,Blon、Blat代表前一站经度、纬度;其中,若K>0,则表示与为上行线路同向,即上行,反之则为下行。
进一步的,步骤S223通过公式其中,s为最近一次定位点离站点距离,v0为所述公交到站地点处公交的行使速度,vt为到站速度,默认为0,t为最近一次定位点到公交站点所用的时间。
进一步的,所述Lasso方法定义公式为:其中,xij为第i组j个变量,是行向量β为回归系数,y表示训练标签。
本发明的基于GRU神经网络的公交到站时间预测方法,首先通过Spark对原始数据进程处理得到标准时间序列类型数据,实现对公交到站数据的提取;然后利用Lasso方法提出关联性弱的特征向量实现变量选择操作;最后利用GRU神经网络构建公交的到站预测模型,实现对公交到站的具体时间预测操作;与现有技术相比,本发明GRU神经网络具有对数据进行筛选和选择的操作过程,通过对公交到站数据的筛选和选择,本发明方法可有效提升对公交到站时间预测的准确性。
附图说明
图1是本发明实施例中所述基于GRU神经网络的公交到站时间预测方法的流程图示意;
图2是本发明实施例中GPS数据处理流程示意;
图3是本发明实施例中对采集得到的源数据关联性处理流程图示意;
图4是本发明实施例中所述GRU网络模型图示意;
图5是本发明实施例中所述GRU网络模型的算法流程图示意;
图6是本发明方法与LSTM方法进行公交到站时间预测的Loss函数损失值对比曲线图示意;
图7是采用本发明方法预测得到的公交到站时间与公交实际到站时间对比图示意;
图8和图9是本发明实施例中分别采用LSTM网络和GRU网络进行公交到站预测训练对比图示意。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
参阅图1,在本发明实施例中,提供了一种基于GRU神经网络的公交到站时间预测方法,具体包括步骤如下:
步骤一、由数据库导出历史数据至CSV格式文件,获取原始数据,利用HBase分布式数据库和Spark内存处理技术对原始数据进行分析处理去除原始数据的混杂性、复杂性和系数性;结合图2,具体的,数据库为存储公交实时运行的历史记录数据,其中,历史记录数据(即历史数据)由GPS一起记录得到,并且由于原始数据通过安装在公交上的GPS仪器记录,而在公交实际运行过程中,其存在接受精度延迟等问题,直接接收的数据有可能受到GPS定位精度以及网络影响,存在于标准格式不符、数据明显错误、数据重复等问题;基于此,本发明方法首先利用SparkSQL从HDFS中获取原始CSV格式文件,形成Spark DataFrame格式的数据,利用时间序列、车号匹配对冗余、异常数据进行提取操作,并对冗余列进行删除,最后按照时间、车辆顺序对数据进行排序,并利用HBase Phonenix接口将清理完成的数据存放入数据库;随后利用HBase中指定公交的历史GPS轨迹数据,通过Spark弹性分布式数据集技术将历史GPS轨迹数据与公交站点距离进行匹配;在匹配过程中包括步骤:
先设定一特定值用于判断匹配是否小于指定公交的设定到站地点,若匹配的结果小于特定值,则标记与匹配对应的公交到站地点;公交到站地点与实际定位地点的距离通过Greate-Circle距离计算公式计算,Greate-Circle距离计算公式为:其中,R是地球半径,Aj,Aw分别为实际定位地点的经度、纬度;Bj,Bw分别为公交到站地点的经度、纬度;再将匹配按时间顺序任取时间间隔大于t秒的两个GPS轨迹数据对应的定位点,根据两个定位点连线的斜率判断公交的上下行运行状况;其中,斜率的计算过公式为:式中,Dlon、Dlat代表线路上行终点站经度、纬度,Slon、Slat代表线路上行起点站经度、纬度,Alon、Alat代表后车辆行驶轨迹的后一站经度、纬度,Blon、Blat代表前一站经度、纬度;结算结果中,若K>0,则表示与为上行线路同向,即上行,反之则为下行;随后,选取匹配中与站点最近的定位的时间,基于公交的运行速度和加速度,记录到站时间,具体通过公式计算得到到站时间,式中,s为最近一次定位点离站点距离,v0为所述公交到站地点处公交的行使速度,vt为到站速度,默认为0,t为最近一次定位点到公交站点所用的时间;最后,以到站时间和公交对应的车辆号对原始数据进行排序,并利用Spark内存处理技术输出存储至HDFS中;同时,通过对站点信息表中站点名称及位置,利用地图找到相对应GPS轨迹数据对应的坐标位置,根据其运营线路分析其对应的站间距,形成站点信息表。
在具体实施例中,若存在多条历史GPS轨迹数据对应的定位点位置与公交站点距离匹配的数据,则以最近、最早为重要条件进行筛选,选取得到最佳匹配结果;其中,本发明使用原始数据的格式可参阅表一;公交的到站时间表可参阅表二;公交的具体站点信息表可参阅表三。
表一
表二
表三
步骤二、基于单一属性和多因子角度采用特征相关性研究法处理分析处理后的原始数据,得到标准时间序列类型数据;在具体实施例中,考虑从单一属性出发,每一班次站点之间的运营时间必然影响着下一站的到站时间,且在实际驾驶过程中,不同车辆由于驾驶者不同也存在一定的变化规律,并且考虑多因子之间存在的联系,站点间距以及发车时间和是否是工作日等运营情况特征,必然影响着整条线路的运营效率,从而导致到站时间的变化,结合数据原本存在的时间序列关系,通过特征相关性研究法将数据处理成标准的时间序列类型;在本发明中,方法从时间的横纵两个角度分析不同时间和空间以及天气情况差异对于公交到站时间的影响,具体可参阅表四内容。
表四
步骤三、利用Lasso方法对标准时间序列类型数据进行变量选择,剔除标准时间序列类型数据中关联性弱的特征向量;由于预测公交到站在实际操作中是一种回归性问题,为了避免由于回归分析过程中预测向量过多,导致子集选择的计算过程具有不可实行性,且子集选择具有内在的不连续性,从而导致子集选择极度多变;本发明通过使用Lasso方法进行变量选择,将关联性弱的特征向量剔除,Lasso方法定义公式为:式中,xij为第i组j个变量,向量β为回归系数,y表示训练标签;结合图3,使用Lasso方法剔除相关性弱特征向量的具体过程为:
首先,通过指定编程语言使用Lasso方法进行变量选择分析得到不同属性的系数值,Lasso方法的变量选择系数可参阅表五;本实施例中Lasso方法的具体实现程序代码为:
表五
然后,根据其相关性系数,选择指定属性作为预测模型的输入和输出,优选的,本实施例选择BUSNO,STOP,WEEKDAY,DISTANCE,STARTTIME,WEATHER属性作为模型的输入,将到站时间(STOPTIME)作为模型输出;当然,此仅为本发明方法的较佳实施例,在其他实施例中,可根据实际情况进行选择,本发明对此并不进行限制和固定。
在实际操作中,由于在数据经过回归分析预处理后,需要考虑未来增加数据量时,量纲不一致的问题,因此需要对数据进行标准化操作,将有量纲的表达式变换为无量纲的表达式;对此,本发明采用类别标签定义,假设10辆车车号用0~9来表示;采用zero-mean标准化,其定义为,式中,x表示原固定类型数据,x*表示新数据,μ表示样本均值,σ表示样本标准差;而对于他数据利用离差标准化,定义公式为:式中,y表示标准值,x表示原特征值;由此通过归一化将数据变为标量的好处有,可有效减少寻找最优解的时间,提升模型的收敛速度及其预测精度,可以让各个特征对结果做出的贡献相同;解决新数据量纲差异的问题;即可提升本发明方法的预测效率和预测精度。
步骤四、基于GRU神经网络构建公交的到站预测模型,输入已剔除关联性弱特征向量的标准时间序列类型数据至到站预测模型,实现对公交到站的时间预测操作;结合图4,从中可知,GRU神经网络拥有重置门和更新门两个门,且GRU神经网络不会控制并保留内部记忆Ct;GRU神经网络的原理为:首先,更新门在时间步为t时,通过公式zt=σ(W(z)xt+U(s)ht-1)对更新门计算,式中,xt为输入序列x的第t个分量,通过一个线性变换与权重矩阵W(z)进行相乘,ht-1保存了前一个时间步的信息,经过权重矩阵U(s)进行线性变换;更新门将这两部分信息相加,利用Sigmoid激活函数进行变换,将激活结果压缩到0至1之间;更新门决定了将历史数据的多少传递给未来,减小梯度消失的风险;重置门决定了数据的遗忘流程,通过公式rt=σ(W(r)xt+U(z)ht-1)表示;类似于更新门,将输入序列的分量和前一步所保存的信息进行线性变换,最后通过Sigmoid激活函数进行变换输出。
然后,重置门在使用过程中,新的内容会使用重置门存储的历史步中的数据,具体可由公式h′t=tan h(Wxt+rt⊙Uht-1)计算得到,其中,输入量xt与前一步的信息ht-1先通过线性变换处理,即分别右乘矩阵W、U;由于重置门是一个由0到1的向量,它的值衡量门控开启的大小;当某个元素对应的门控值为0,那么就表示了这个元素将会被网络在此步中遗忘,通过计算重置门rt和Uht-1的Hadamard乘积,可以确定所要保留或遗忘的信息内容;最后将两部分计算机过相加投入双曲正切激活函数tanh。
最后,计算GRU神经网络当前时间步骤的最终记忆ht,具体通过公式:ht=zt⊙ht-1+(1-zt)⊙h′t计算,ht将会保留当前单元所需要的信息传到到下个单元,在这里用到了更新门的激活结果zt,来确定当前记忆内容h′t和前一步信息ht-1中需要收集的信息;其中zt与ht-1的Hadamard乘积表示前一时间步保留到最终记忆的信息,该信息加上当前记忆保留到最终记忆的信息,便可计算出最终门控循环单元输出的内容。
在具体实施例中,每层GRU神经网络内置了保护和控制其状态的更新门,用于实现参数共享和循环记忆;具体通过加入用于实现指数衰减学***均计算公式为:
其中mt代表一阶动量,vt代表二阶动量,β1、β2、代表随即目标函数,在初始迭代的阶段,两个动量有一个向初值的偏移,即mt=0,vt=0;因此,可以对其通过公式进行偏置矫正,并采用公式对梯度进行更新;相较于基于LSTM构建的预测模型,本发明方法的基于GRU神经网络的到站预测模型整体结构更加简单,且在前后梯度方向一致时,能够加速学习;前后梯度方向不一致时,能够抑制振荡,cost模块用于计算预测值和真实值的损失差异,基于得到的所述损失差异判断GRU神经网络的下一步优化方式,并且确定梯度的优化方向;save模块用于存储模型参数以保证模型的安全,即当使用一个模型进行训练后,可将模型完整的保存,一方面实现了数据的连续保存,另一方面,可在下一次预测过程中,使用保存的模型,实现对整个预测过程步骤的优化,有利于提升本发明方法的预测效率。
参阅图5,在本发明实施例中,GRU神经网络构建的预测模型的流程为:
首先选取超参数:优选的,本实发明以初始化权重为标准差是0.1的正太分布,初始化偏差为0.1,初始学习率为0.001,衰减系数为0.9,衰减速度为1000,训练数据集的Batch_size为800,所有样本训练次数Epoch为30,时间步Timesteps为30。
然后进行模型训练:优选的,具体的,本实施例采用南通地区41路公交车14天的历史到站数据进行分析,并取前10天数据作为到站预测模型的训练集,采用二次损失函数it=σ(Wi·[ht-1,xt]+bi)作为该模型训练的最小化误差函数,并将14天中的后4天数据作为检验模型训练结果的测试验证数据;具体可公告公式
表示,式中,C为二次损失函数值,x为输入值,y(x)为到站时间的真实值,a为输入x得到的相应输出值即预测值,n表示一次训练的总数据量。实际应用中,为了防止过拟合,并更好的减小误差,使模型能够深入学习,在损失函数中加入了L2正则项,ω表示权重,λ用于权衡二次损失函数和权重这两项的相对重要程度。
将本发明基于GRU神经网络构建的公交到站预测模型与传统基于LSTM构建的预测模型进行损失率比较,参阅图6,从中可知,本发明方法在四次迭代之前快速下降,并且在五次之后趋于稳定,此时表明本发明方法构建的到站预测模型已经过充分训练,即本发明可以在训练次数少的情况下完成模型的预测功能,有效提升了整个模型的预测速度,整体提升预测效率。
参阅图7,将通过本发明方法预测得到的公交到站时间与公交的实际到站时间对比,具体的,区别于平均绝对百分比误差MAPE指标,本发明采用了式定义的线性回归拟合度指标R-squared来判断,其中,y表示实际到站时间,y*表示到站时间的基于GRU神经网络构建的到站预测模型预测值,代表平均值;并且根据式计算基于GRU神经网络构建的到站预测模型拟合的3天所有班次的拟合度指标R-squared,再取平均值,得出基于GRU神经网络构建的到站预测模型的拟合度达到了94.547%,将实际到站时间与基于GRU神经网络构建的到站预测模型的预测时间相比可知,本发明方法的预测结果与公交的实际到站时间相接近,误差较小。
再将本发明方法与基于LSTM构建的预测模型进行拟合度和性能对比,参阅表六,从中可知,本发明方法相较于传统的基于LSTM构建的预测模型、GM11算法以及SVM算法来说,拟合度提升明显,即表面本发明方法的预测精度高于传统的公交到站预测精度;参阅图8和图9,同时结合表七,将本发明方法与传统的LSTM预测模型进行十次训练比较,从中可以看出,不管如何取epoch和batchsize都能发现,本发明方法的耗时均比LSTM少,在epoch数为100,batchsize为300时,LSTM网络的平均耗时相较于GRU网络多出了7.168%,在epoch数为300,batchsize为3000时,LSTM网络的平均耗时相较于GRU网络高出了14.1%;以此可知,在数据量不断变多的情况下,使用GRU神经网络构建的到站预测模型能够更加节省计算资源,减少模型训练所花费的时间,提升模型的运算效率。
表六
表七
综上可知,本发明的基于GRU神经网络的公交到站时间预测方法,首先通过Spark对原始数据进程处理得到标准时间序列类型数据,实现对公交到站数据的提取;然后利用Lasso方法提出关联性弱的特征向量实现变量选择操作;最后利用GRU神经网络构建公交的到站预测模型,实现对公交到站的具体时间预测操作;与现有技术相比,本发明GRU神经网络具有对数据进行筛选和选择的操作过程,通过对公交到站数据的筛选和选择,本发明方法可有效提升对公交到站时间预测的准确性。
以上仅为本发明的较佳实施例,但并不限制本发明的专利范围,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本发明说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本发明专利保护范围之内。