基于机器学习算法的公交实时到站预测方法、装置和设备
文献发布时间:2023-06-19 10:14:56
技术领域
本申请涉及智能交通技术领域,特别是涉及一种基于机器学习算法的公交实时到站预测方法、装置、计算机设备和存储介质。
背景技术
随着智能交通技术的发展,出现了一种将机器学习算法运用于公交到站预测的技术,该技术通常根据路段行程时间,以及公交的历史行驶时长数据,构建到站预测模型,在需要进行公交到站预测,通过将公交实时运行信息输入到站预测模型,从而实现对公交到站时长的预测。
然而,目前的公交实时到站预测方法,仅能保证平峰时间段预测的准确性,而对于高峰时间段的到站时长预测,准确性较低。
发明内容
基于此,有必要针对上述技术问题,提供一种基于机器学习算法的公交到站预测方法、装置、计算机设备和存储介质。
一种基于机器学习算法的公交实时到站预测方法,所述方法包括:
响应于客户端发起的针对于待预测公交的到站时长预测请求,确定与所述到站时长预测请求匹配的实时交通信息以及历史交通信息;
将所述实时交通信息输入预设的高峰判别模型,根据所述高峰判别模型输出得到与所述到站时长预测请求匹配的高峰状态标识;
将所述高峰状态标识、所述实时交通信息以及所述历史交通信息输入预设的到站预测模型,根据所述到站预测模型输出得到所述待预测公交的到站预测时长,并将所述到站预测时长返回至所述客户端。
在其中一个实施例中,所述待预测公交的个数为多个;所述确定与所述到站时长预测请求匹配的实时交通信息以及历史交通信息,包括:从多个所述待预测公交中确定出与所述到站时长预测请求匹配的目标公交;获取所述目标公交的第一位置,以及与所述到站时长预测请求匹配的第二位置;基于所述第一位置以及所述第二位置,确定所述目标公交的行驶位置区间;获取与所述行驶位置区间匹配的实时交通信息,作为所述到站时长预测请求匹配的实时交通信息。
在其中一个实施例中,所述获取与所述行驶位置区间匹配的实时交通信息,包括:确定预设个数的与所述目标公交匹配的关联公交;所述关联公交为当前时刻前经过所述行驶位置区间的前预设个数的公交;所述当前时刻为所述到站时长预测请求的触发时刻;获取各关联公交经过所述行驶位置区间对应的行驶时长信息,得到预设个数的行驶时长信息;将所述预设个数的行驶时长信息作为所述实时交通信息。
在其中一个实施例中,所述将所述实时交通信息输入预设的高峰判别模型,根据所述高峰判别模型输出得到与所述到站时长预测请求匹配的高峰状态标识,包括:将所述预设个数的行驶时长信息输入所述高峰判别模型,确定各行驶时长信息对应的各关联公交的行驶顺序;基于所述行驶顺序,确定与所述预设个数的行驶时长信息对应的多个斜率特征信息;对所述行驶时长信息进行对数平滑处理,得到预设个数的行驶时长特征信息;根据所述行驶时长特征信息、所述斜率特征信息以及所述当前时刻的时间特征信息确定所述高峰状态标识。
在其中一个实施例中,所述基于所述行驶顺序,确定与所述预设个数的行驶时长信息对应的多个斜率特征信息,包括:确定第一行驶时长信息,以及所述第一行驶时长信息对应的关联公交的第一行驶顺序;若所述第一行驶顺序不是末尾行驶顺序,则将所述第一行驶顺序的下一个行驶顺序作为第二行驶顺序,确定所述第二行驶顺序对应的关联公交的第二行驶时长信息;基于所述第二行驶时长信息以及所述第一行驶时长信息确定与所述第一行驶时长信息匹配的斜率特征信息。
在其中一个实施例中,所述行驶位置区间包括多个子行驶位置区间;所述实时交通信息包括:实时行驶时长信息;所述获取与所述行驶位置区间匹配的实时交通信息,包括:确定各子行驶位置区间对应的子关联公交;所述子关联公交为当前时刻前经过所述各子行驶位置区间前一个公交;所述当前时刻为所述到站时长预测请求的触发时刻;确定各子关联公交经过所述各子行驶位置区间对应的子实时行驶时长信息;对所述子实时行驶时长信息进行求和处理,得到所述实时行驶时长信息。
在其中一个实施例中,所述将所述实时交通信息输入预设的高峰判别模型之前,还包括:确定样本行驶位置区间,以及经过所述样本行驶位置区间的多个样本公交对应的样本高峰状态标识;确定与各样本公交匹配的多个样本关联公交;所述样本关联公交为当前样本时刻前经过所述样本行驶位置区间的前预设个数的公交;所述当前样本时刻为所述样本公交进入所述样本行驶位置区间的进入时刻;获取各样本关联公交的样本行驶时长信息,并根据所述样本行驶时长信息得到多个样本斜率特征信息;对所述样本行驶时长信息进行对数平滑处理,得到多个样本行驶时长特征信息;确定所述当前样本时刻的时间特征信息;基于所述样本高峰状态标识,利用所述样本斜率特征信息、所述样本行驶时长特征信息,以及所述当前样本时刻的时间特征信息对预设的神经网络模型进行训练,得到所述高峰判别模型。
一种基于机器学习算法的公交实时到站预测装置,所述装置包括:
预测请求响应模块,用于响应于客户端发起的针对于待预测公交的到站时长预测请求,确定与所述到站时长预测请求匹配的实时交通信息以及历史交通信息;
高峰标识确定模块,用于将所述实时交通信息输入预设的高峰判别模型,根据所述高峰判别模型输出得到与所述到站时长预测请求匹配的高峰状态标识;
到站时长预测模块,用于将所述高峰状态标识、所述实时交通信息以及所述历史交通信息输入预设的到站预测模型,根据所述到站预测模型输出得到所述待预测公交的到站预测时长,并将所述到站预测时长返回至所述客户端。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
上述基于机器学习算法的公交实时到站预测方法、装置、计算机设备和存储介质,服务器响应于客户端发起的针对于待预测公交的到站时长预测请求,确定与到站时长预测请求匹配的实时交通信息以及历史交通信息;将实时交通信息输入预设的高峰判别模型,根据高峰判别模型输出得到与到站时长预测请求匹配的高峰状态标识;将高峰状态标识、实时交通信息以及历史交通信息输入预设的到站预测模型,根据到站预测模型输出得到待预测公交的到站预测时长,并将到站预测时长返回至客户端。本申请通过高峰判别模型可以准确识别出到站时长预测请求的高峰状态,并结合到站预测模型,可以提高高峰状态下得到的到站预测时长的准确性。
附图说明
图1为一个实施例中基于机器学习算法的公交实时到站预测方法的应用环境图;
图2为一个实施例中基于机器学习算法的公交实时到站预测方法的流程示意图;
图3为一个实施例中确定实时交通信息的流程示意图;
图4为一个实施例中获取与行驶位置区间匹配的实时交通信息的流程示意图;
图5为一个实施例中得到高峰状态标识的流程示意图;
图6为一个实施例中确定多个斜率特征信息的流程示意图;
图7为一个实施例中训练高峰判别模型的流程示意图;
图8为一个应用实例中公交实时到站预测方法的流程示意图;
图9为一个应用实例中构建候车时长预测模型的流程示意图;
图10为一个应用实例中公交实时到站预测系统的结构示意图;
图11为一个实施例中基于机器学习算法的公交实时到站预测方法装置的结构框图;
图12为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于机器学习算法的公交到站预测方法,可以应用于如图1所示的应用环境中。其中,客户端101通过网络与服务器102进行通信,该服务器102可以是用于实现公交到站时长预测的实时预测系统。用户可通过客户端101向服务器102发起对于公交的到站时长预测请求,服务器102得到该请求后可以进行响应,从存储有交通数据的数据库中找到与请求匹配的实时交通信息以及历史交通信息,并且将实时交通信息输入预先训练好的高峰判别模型,确定当前的高峰状态标识,再将高峰状态标识与实时交通信息以及历史交通信息输入预先训练好的到站预测模型,从而得到到站预测的时长并返回客户端101。其中,客户端101可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种基于机器学习算法的公交实时到站预测方法,以该方法应用于图1中的服务器102为例进行说明,包括以下步骤:
步骤S201,服务器102响应于客户端101发起的针对于待预测公交的到站时长预测请求,确定与到站时长预测请求匹配的实时交通信息以及历史交通信息。
其中,到站时长预测请求由用户通过客户端101触发,用户可以通过客户端101选择需要查询公交,例如某台公交号码的公交车,作为待预测公交,并生成针对待预测公交的到站时长预测请求,发送至服务器102。服务器102则可以对接收到的到站时长预测请求进行响应,并利用预先存储有多种交通数据的数据库中,找到与该请求匹配的实时交通信息,例如当前时间段其他公交在待预测公交的行驶路段上的实时行驶时长,以及与该请求匹配的历史交通信息,例如,在行驶路段的路面状况等信息,或者驾驶该待预测公交的驾驶员的相关驾驶习惯等等。
步骤S202,服务器102将实时交通信息输入预设的高峰判别模型,根据高峰判别模型输出得到与到站时长预测请求匹配的高峰状态标识。
其中,高峰状态标识主要是用于标识客户端101发出到站时长预测请求的当前时刻是否处于高峰时刻,高峰状态标识可以由预先训练的高峰判别模型输出得到,例如可以包括有高峰上行状态标识,高峰下行状态标识以及平峰状态标识等等。具体来说,服务器102可以将步骤S101中得到的与到站时长预测请求匹配的实时交通信息输入预先训练好的高峰判别模型,就可以通过高峰判别模型得到对应的高峰状态标识。
步骤S203,服务器102将高峰状态标识、实时交通信息以及历史交通信息输入预设的到站预测模型,根据到站预测模型输出得到待预测公交的到站预测时长,并将到站预测时长返回至客户端101。
其中,到站预测模型可以是一种利用LightGBM算法构造的用于预测公交经过某个行驶区间所需要耗费的行驶时间的预测模型,该模型可以利用从数据库中得到的交通信息进行特征提取后训练而成,其中提取的特征可以包括有交通路况特征,驾驶员特征,驾驶时间特征,以及驾驶时刻是否处于高峰状态等多个特征训练而成。
具体来说,服务器102得到高峰状态标识、实时交通信息以及历史交通信息后,可以将上述交通信息输入预先训练好的到站预测模型,到站预测模型则可以基于上述信息输出得到的预测结果作为待预测公交的到站预测时长,并将预测结果通过网络返回至客户端101中进行显示。
上述基于机器学习算法的公交实时到站预测方法中,服务器102响应于客户端101发起的针对于待预测公交的到站时长预测请求,确定与到站时长预测请求匹配的实时交通信息以及历史交通信息;将实时交通信息输入预设的高峰判别模型,根据高峰判别模型输出得到与到站时长预测请求匹配的高峰状态标识;将高峰状态标识、实时交通信息以及历史交通信息输入预设的到站预测模型,根据到站预测模型输出得到待预测公交的到站预测时长,并将到站预测时长返回至客户端101。本申请通过高峰判别模型可以准确识别出到站时长预测请求的高峰状态,并结合到站预测模型,可以提高高峰状态下得到的到站预测时长的准确性。
在一个实施例中,待预测公交的个数为多个,如图3所示,步骤A包括:
步骤S301,服务器102从多个待预测公交中确定出与到站时长预测请求匹配的目标公交。
其中,待预测公交的数量可以为多个,例如用户输入的可能是针对于某路公交车的到站预测请求,而该路公交车可能包括多台,因此,首先需要从多路公交车中找出到站时长预测请求匹配的目标公交车,作为目标公交,该目标公交的确定可以是由到站时长预测请求决定。例如,用户A选择了需要预测A方向的B路公交车到C公交车站的时长,那么待预测公交即为A方向的B路公交车,服务器102则可以查询所有A方向的B路公交车中未到达C公交车站且与C公交车站之间距离最短的公交车作为目标公交。
步骤S302,服务器102获取目标公交的第一位置,以及与到站时长预测请求匹配的第二位置;
步骤S303,服务器102基于第一位置以及第二位置,确定目标公交的行驶位置区间。
其中,第一位置指的是目标公交所处的位置,而第二位置则指的是与到站时长预测请求匹配的位置,可以是触发到站时长预测请求的站点位置,例如C公交车站的位置。具体来说,服务器102可以利用公交上设置的定位设备确定第一位置,以及读取客户端101触发的到站时长预测请求中选择的站点作为第二位置,也可以是直接读取客户端101的位置信息,并找到与该位置信息距离最短的站点作为第二位置。之后,服务器102再基于得到第一位置以及第二位置,分别作为区间端点,按照目标公交的行驶路线得到对应的行驶位置区间。
步骤S304,服务器102获取与行驶位置区间匹配的实时交通信息,作为到站时长预测请求匹配的实时交通信息。
最后,服务器102可以基于行驶位置区间找到该区间匹配的实时交通信息,例如在当前时间点经过该行驶位置区间所需的行驶时间,以及该行驶位置区间的拥挤程度等等,作为到站时长预测请求匹配的实时交通信息。
进一步地,如图4所示,步骤S304可以进一步包括:
步骤S401,服务器102确定预设个数的与目标公交匹配的关联公交;关联公交为当前时刻前经过行驶位置区间的前预设个数的公交;当前时刻为到站时长预测请求的触发时刻。
其中,当前时刻指的是用户通过客户端101触发到站时长预测请求的触发时刻,关联公交则指的是在这个触发时刻之前,经过上述行驶位置区间前预设个数的与目标公交匹配的公交,预设个数可以根据需要对服务器102进行设定,可以是10个,如果目标公交是公交汽车,那么关联公交则指的是当前时刻之前通过行驶位置区间的10台公交汽车。
步骤S402,服务器102获取各关联公交经过行驶位置区间对应的行驶时长信息,得到预设个数的行驶时长信息;
步骤S403,服务器102将预设个数的行驶时长信息作为实时交通信息。
具体地,服务器102得到预设个数的关联公交后,可以从数据库中分别读取每个关联公交经过行驶位置区间的行驶时长,作为实时交通信息。
进一步地,如图5所示,步骤S202可以进一步包括:
步骤S501,服务器102将预设个数的行驶时长信息输入高峰判别模型,确定各行驶时长信息对应的各关联公交的行驶顺序。
其中,行驶顺序指的是各关联公交通过行驶位置区间的行驶顺序,服务器102可以将得到的预设个数的行驶时长信息输入高峰判别模型,高峰判别模型则可以从输入的行驶时长信息中提取出各行驶时长信息中对应的各关联公交的行驶顺序。
步骤S502,服务器102基于行驶顺序,确定与预设个数的行驶时长信息对应的多个斜率特征信息。
其中,斜率特征信息是指的多个行驶时长信息之间的斜率特征,用于描述行驶时长信息之间变化趋势。具体来说,服务器102可以根据行驶顺序,找到多个行驶时长信息之间的变化趋势,即斜率特征信息。
步骤S503,服务器102对行驶时长信息进行对数平滑处理,得到预设个数的行驶时长特征信息。
行驶时长特征信息指的是对行驶时长信息进行对数平滑处理后得到的信息,服务器102可以分别对接收到的预设个数的行驶时长信息进行对数平滑处理,从而得到与预设个数的行驶时长信息一一对应的行驶时长特征信息。
步骤S504,服务器102根据行驶时长特征信息、斜率特征信息以及当前时刻的时间特征信息确定高峰状态标识。
其中,对于当前时刻的时间特征信息,由于高峰平峰的出现和时间息息相关,例如该时间是否是节假日,属于哪个时间范围等等,都会对高峰平峰的判别造成影响。服务器102除了需要得到的行驶时长特征信息以及斜率特征信息进行高峰状态的判别外,还需要确定当前时刻对应的时间特征信息,并利用行驶时长特征信息、斜率特征信息以及当前时刻的时间特征信息确定高峰状态标识。
进一步地,如图6所示,步骤S502可以进一步包括:
步骤S601,服务器102确定第一行驶时长信息,以及第一行驶时长信息对应的关联公交的第一行驶顺序;
步骤S602,若第一行驶顺序不是末尾行驶顺序,则服务器102将第一行驶顺序的下一个行驶顺序作为第二行驶顺序。
其中,第一行驶时长信息可以是输入高峰判别模型中预设个数行驶时长信息的任意一个,第一行驶顺序则是与第一行驶时长信息对应的关联公交的行驶顺序,第二行驶顺序则是第一行驶顺序的下一个行驶顺序,第二行驶时长信息则指的是第二行驶顺序对应的关联公交的行驶时长信息。具体地,服务器102可以将得到的预设个数的行驶时长信息,分别作为第一行驶时长信息,并确定每个第一行驶时长信息对应的第一行驶顺序以及第二行驶顺序,再通过第二行驶顺序确定出对应的关联公交的第二行驶时长信息。
例如,输入高峰判别模型的行驶时长信息分别为:行驶时长信息A、行驶时长信息B,以及行驶时长信息C,且分别对应于关联公交A,关联公交B,关联公交C,其中关联公交之间的行驶顺序分别是关联公交A、关联公交B,以及关联公交C。那么服务器102可以分别将行驶时长信息A、行驶时长信息B,以及行驶时长信息C分别作为第一行驶时长信息,而假如行驶时长信息A作为第一行驶时长信息,由于其行驶顺序不是末尾行驶顺序,则可以将下一行驶顺序对应的关联公交的行驶时长信息,作为其对应的第二行驶时长信息,即将行驶时长信息B作为第二行驶时长信息;而如果行驶时长信息B作为第一行驶时长信息,那么则可以确定行驶时长信息C为对应的第二行驶时长信息。
步骤S603,服务器102基于第二行驶时长信息以及第一行驶时长信息确定与第一行驶时长信息匹配的斜率特征信息。
具体来说,服务器102可以将得到的第二行驶时长信息与第一行驶时长信息作差处理,并将得到的差值作为分子,以及第一行驶时长信息作为分母,作商处理,作为与该第一行驶时长信息匹配的斜率特征信息。
上述实施例中,服务器102可根据预设个数的关联公交在行驶位置区间上的行驶时长信息作为实时交通信息,可以提高得到的实时信息的实时性以及准确性,之后服务器可将预设个数的行驶时长信息做平滑处理,得到多个行驶时长特征信息以及斜率特征信息,并得到高峰状态标识,可以提高得到的高峰状态标识的准确性。
另外,在一个实施例中,行驶位置区间可以包括多个子行驶位置区间;实时交通信息包括:实时行驶时长信息;步骤S304可以进一步包括:服务器102确定各子行驶位置区间对应的子关联公交;子关联公交为当前时刻前经过各子行驶位置区间前一个公交;当前时刻为到站时长预测请求的触发时刻;确定各子关联公交经过各子行驶位置区间对应的子实时行驶时长信息;对子实时行驶时长信息进行求和处理,得到实时行驶时长信息。
其中,位置行驶区间可以由多个子行驶位置区间构成,例如一段从地点A到地点D的行驶位置区间,里面可以由地点A到地点B,地点B到地点C,以及地点C到地点D的子行驶位置区间构成,服务器102可以分别获取到站时长预测请求的触发时刻前一个通过地点A到地点B的子关联公交A,前一个通过地点B到地点C的子关联公交B,以及前一个通过地点C到地点D的子关联公交C,并分别获取子关联公交A,子关联公交B以及子关联公交C通过对应子行驶位置区间的子实时行驶时长信息A、子实时行驶时长信息B以及子实时行驶时长信息C,进行求和处理,作为实时行驶时长信息。
本实施例中,服务器102可以将行驶位置区间划分成多个子行驶位置区间,并分别确定每个子行驶位置区间中与当前时刻最接近各子关联公交通过各子行驶位置区间的子实时行驶时长信息,进行求和处理,得到最终的实时行驶时长信息,可以进一步保证实时行驶时长信息的实时性,由此提高得到的到站预测时长的实时性与准确性。
在一个实施例中,如图7所示,步骤S202之前,基于机器学习算法的公交实时到站预测方法还可以包括:
步骤S701,服务器102确定样本行驶位置区间,以及经过样本行驶位置区间的多个样本公交对应的样本高峰状态标识。
其中,样本行驶位置区间指的是预先采集交通数据库中多个样本交通数据对应的形式位置区间,交通数据库中可以预先采集有某个样本公交从某站点A到另外一个站点B的离开时间以及到达时间等等相关信息,那么站点A到站点B之间的区间即为其中一个样本行驶位置区间。样本高峰状态标识则指的是该样本公交通过样本行驶位置区间对应的样本高峰状态标识,用于表示通过样本行驶位置区间时该区间是否处于高峰状态,可以是包括有高峰上行状态,高峰下行状态以及平峰状态等等。
步骤S702,服务器102确定与各样本公交匹配的多个样本关联公交;样本关联公交为当前样本时刻前经过样本行驶位置区间的前预设个数的公交;当前样本时刻为样本公交进入样本行驶位置区间的进入时刻。
其中,样本关联公交为当前样本时刻前经过样本行驶位置区间的前预设个数的公交,当前样本时刻则是样本公交进入样本行驶位置区间的进入时刻。具体来说,当服务器102确定样本公交以及其对应的样本行驶位置区间后,可以基于得到样本行驶位置区间从交通数据库中查询经过上述样本行驶位置区间当前时刻之前预设个数的公交,例如样本行驶位置区间为区间A,那么服务器102则可以从交通数据库中找到通过区间A的样本公交,并且得到各个样本公交的通过时间,找到与当前时刻最接近的预设个数的样本公交,作为样本关联公交。
步骤S703,服务器102获取各样本关联公交的样本行驶时长信息,并根据样本行驶时长信息得到多个样本斜率特征信息。
服务器102得到预设个数的样本关联公交后,可以分别确定每个样本关联公交通过样本行驶位置区间的行驶时长,作为样本行驶时长信息,最后可以基于得到的各样本行驶时长信息,利用各样本行驶时长信息的前后顺序作差处理,确定出多个样本斜率特征信息。
步骤S704,服务器102对样本行驶时长信息进行对数平滑处理,得到多个样本行驶时长特征信息;
步骤S705,服务器102确定当前样本时刻的时间特征信息。
具体地,服务器102可以对得到的每个样本行驶时长信息求取对数,进行对数平滑处理,从而得到多个样本行驶时长特征信息,并且,还可以确定当前样本时刻对应的时间特征,例如是星期几、是否是节假日、对应的小时区间等等。
步骤S706,服务器102基于样本高峰状态标识,利用样本斜率特征信息、样本行驶时长特征信息,以及当前样本时刻的时间特征信息对预设的神经网络模型进行训练,得到高峰判别模型。
最后,服务器102可以将采集到的样本高峰状态标识,以及对应的样本斜率特征信息、样本行驶时长特征信息,以及当前样本时刻的时间特征信息作为输入,对神经网络模型进行训练,例如可以是时序的神经网络LSTM模型,从而得到最终的高峰判别模型。
上述实施例中,通过样本高峰状态标识,以及样本斜率特征信息等实时样本信息对神经网络模型进行训练得到高峰判别模型,可以提高高峰判别的准确性,另外该模型可以通过LSTM算法,可以进一步提高模型训练的效率。
在一个应用实例中,提供了一种公交实时到站预测方法,该方法利用高平峰判别模型得到高平峰判别因子,以及实时公交畅行指数构建候车时长预测模型,从而得到在高峰时间段可以准确预测候车时长的候车时长预测模型,用户通过发起预测请求,触发高平峰判别模型根据实时车辆特征得到高平峰判别因子,同时触发候车时长预测回归模型根据得到的高平峰判别因子以及实时公交畅行指数等实时车辆特征得到候车时长,并将候车时长反馈至预测请求发起用户。
具体来说,如图8所示,本应用实例可包括如下6个步骤:构建基础数据集、数据预处理、构建高平峰判别模型、构建候车时长预测模型、构建实时预测系统以及预测输出。
(一)构建基础数据集
对公交历史进站出站记录,提取出基础数据集,包括如下步骤:对于公交历史进出站原始数据,按不同车次划分数据,对每趟车提取多条基础数据,可以包括离站公交站点(start_id)、离站时间(sd_time)、到达公交站点(end_id)、到站时间(ea_time)、中途经过的公交站点(mid_station_id)、离开站点到到达站点所用时长(label),最后遍历不同站点的有序不重复组合,得到基础数据集。
(二)数据预处理
去除异常值数据或噪音数据,提升数据质量;
剔除少数没有到站时间记录的数据;
剔除区间用时(label)小于等于0和大于12小时的数据;
用箱型图法剔除不同区间类型(即mid_num不同)的异常label。
(三)构建高平峰判别模型
总体思路:对于某条记录刻画前10趟车的相关细节,如行驶时长、时长的斜率变化、时长高峰阈值、一天当中不同时间刻度的候车表现等,判别该记录所在时刻是属于平峰、高峰上行或高峰下行时段。
具体来说:
1.打标签:获取每天高峰时段前后数据,平峰期打标签0,高峰上行打标签1,高峰下行打标签2。构建三分类模型。
2.提取判别模型基础数据:提取经过该公交站点前10趟公交的10条行驶时长记录,以及本车的出发时间。
3.前十趟车特征提取:
前后两趟车的行驶时间之差
前后两趟车的斜率:设前一趟车行驶时长dtime
前10趟车高平峰状态特征获取:(高峰上行(1)、高峰下行(2)或平峰(0)状态特征,作为高平峰判别模型的特征)
4.本车出发时间提取时间特征:提取星期类型、是否节假日、小时刻度、半小时刻度等作为时间特征输入模型。
5.构建模型,通过LSTM算法构建高平峰判别模型
(四)构建候车时长预测模型
构建候车时长预测模型主要有五大特征群,构建方法具体如图9所示。
特征群一:路况特征
特征群二:公交驾驶员特征
特征群三:时间、时序特征
特征群四:组合特征
特征群五:实时特征
(1)路况特征:不同的路况对公交车行驶的速度会造成影响,从而影响该车的到站时间长短。如道路的弯曲情况、红绿灯个数等静态情况对公交在这段路的行驶产生影响;如路上车流、拥堵等动态(实时)情况也会对公交行驶产生影响。
具体可以包括:区间id、区间距离、道路情况(例如红绿灯个数、急转弯个数、道路弯曲指数、路的陡峭度、道路区间内所有车流情况)
(2)公交驾驶员特征:不同的司机其驾驶行为不一样,如不同公交司机的开车速度不一样等特征同样会影响该趟公交到达目的地的时间长短。
具体可以包括:年平均驾驶公交的速度、年龄、性别、驾龄、驾驶行为(历史违法、历史事故等)、当天驾驶时长、周平均驾驶公交速度、周平均驾驶公交速度的调和平均值。
(3)时间、时序特征:不同的工作日类型,如周一至周日,每一天路上人流量等多种因素不同;一天中不同时段,如高峰时段、平峰时段;是否是节假日等会影响公交车的行驶速度,进而影响候车时长。
具体来说,本提案采用重构日期特征的方法对每条训练数据的日期进行特征提取,其中,重构的规则可以包括:数据是否是节假日、当前日期在工作日或假期中所占的比例、当天所在的日期类型(工作日或节假日)有多少天、当天之前最近的连续不同的日期类型(工作日或节假日)天数以及当天之后最近的连续的日期类型(工作日或节假日)天数。
对于候车时长,采用常用的时序平滑方法,具体如下:对候车时长取平滑、Ewm指数平滑、Rolling平滑、离当前车次最近的历史三趟车的log平滑、调和平均值
(4)组合特征:从数据挖掘的角度而言,组合不同的特征能增强模型的非线性表达能力,有利于模型更好地拟合数据。
具体可以包括:对路况和时间组合特征,以及对司机和时间组合特征
(5)实时特征:实时特征是模型特征构建的重要组成部分,很大程度上提高了模型的预测精准度。
1.高平峰判别因子(有三种状态:平峰(0)、高峰上行(1)、高峰下行(2))
2.实时天气特征
具体包括:该时间参考点前15分钟晴(0)、阴(1)、小雨(2)、中雨(3)、大雨(4)或暴雨(5)天气因素一;获取该时间参考点前15分钟温度大小这一天气因素二。
3.实时区间行驶时长(即畅行指数):以当前区间(conbine_id)的该车离开start_id站点为实时时间参考点,获取该区间内的公交实时区间行驶时长。具体求解方法如下:
将某两个站之间的区域作为当前区间,以路过该区间的任意一趟车为例,其中该趟车离开初始区间端点的时间为sd_time,到达结束区间端点的时间为ea_time。
(1)确定当前区间包括的所有站点
(2)以sd_time为时间参考点,依次求出(1)中每个站点中离sd_time时间点最近的且已经离开了该站点的那趟公交从最近的一个站到达此站的行驶时长
(3)将各行驶时长叠加作为当前区间的实时区间行驶时长,即畅行指数。
畅行指数t反应该趟车离开这一区间的起始位置时区间起始位置到区间结束位置路上公交车行驶的实时耗时,一定程度反应区间路况公交实时畅行程度。将该特征加入到模型中。
4.用LightGBM算法构建候车时长预测回归模型。
(五)实时预测系统
公交实时到站预测系统框架如图10所示:
通过上述预先构建高平峰判别模型、候车时长预测模型,以及模型搭建过程中形成的知识库,为实时预测系统提供模型和数据支撑。
公交到站实时预测具体思路如下:
<1>触发预测请求。
当调度系统或某一站候车乘客有预测候车时长的请求时,触发预测请求。
<2>初始化。
-->初始化高平峰判别模型
-->初始化候车时长预测模型
-->初始化知识库
<2>实时数据流输入。
-->实时时间now_time戳输入
-->实时前十趟车数据流输入
-->当前车辆驾驶员id输入
-->实时线路id输入
-->实时车辆位置以及实时车辆位置上一个公交站台id输入
-->实时车辆离开位置上一个公交站台的时间输入
-->当前候车乘客或调度待预测公交站台位置输入
-->实时触发预测时间输入
-->实时天气情况(实时天气因素一和天气因素二)输入
<3>实时数据流处理。
实时时间处理:按时间特征处理方法处理实时时间戳。
实时高平峰判别因子获取:处理前10趟车数据,触发高平峰判别模型进行分类预测,预测得到的结果即为实时高平峰判别因子。
实时区间内公交畅行指数处理:以实时待预测这趟公交车离开预测区间开始站点nsd_time的时间为实时参考时间点,按上述中方法处理区间内公交实时畅行指数。
<4>合并特征,输入到时长预测模型中,触发预测,得到预测的区间内候车时长t_eare_pred。
<5>计算实时候车时长t_pred。
t_pred=t_pred_eare-(now_time-nsd_time)
上述应用实例中,利用高平峰判断模型得出高平峰判别因子,以及得到畅行指数并将高平峰判别因子以及畅行指数作为输入构建候车时长预测回归模型,并将该模型用在公交车实时到站预测,很大程度缓解高峰预测不准的问题。
应该理解的是,虽然本申请的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图11所示,提供了一种基于机器学习算法的公交实时到站预测装置,包括:预测请求响应模块1101、高峰标识确定模块1102和到站时长预测模块1103,其中:
预测请求响应模块1101,用于响应于客户端发起的针对于待预测公交的到站时长预测请求,确定与到站时长预测请求匹配的实时交通信息以及历史交通信息;
高峰标识确定模块1102,用于将实时交通信息输入预设的高峰判别模型,根据高峰判别模型输出得到与到站时长预测请求匹配的高峰状态标识;
到站时长预测模块1103,用于将高峰状态标识、实时交通信息以及历史交通信息输入预设的到站预测模型,根据到站预测模型输出得到待预测公交的到站预测时长,并将到站预测时长返回至客户端。
在一个实施例中,待预测公交的个数为多个;预测请求响应模块1101,进一步用于从多个待预测公交中确定出与到站时长预测请求匹配的目标公交;获取目标公交的第一位置,以及与到站时长预测请求匹配的第二位置;基于第一位置以及第二位置,确定目标公交的行驶位置区间;获取与行驶位置区间匹配的实时交通信息,作为到站时长预测请求匹配的实时交通信息。
在一个实施例中,预测请求响应模块1101,进一步用于确定预设个数的与目标公交匹配的关联公交;关联公交为当前时刻前经过所述行驶位置区间的前预设个数的公交;当前时刻为到站时长预测请求的触发时刻;获取各关联公交经过行驶位置区间对应的行驶时长信息,得到预设个数的行驶时长信息;将预设个数的行驶时长信息作为实时交通信息。
在一个实施例中,高峰标识确定模块1102,进一步用于将预设个数的行驶时长信息输入高峰判别模型,确定各行驶时长信息对应的各关联公交的行驶顺序;基于行驶顺序,确定与预设个数的行驶时长信息对应的多个斜率特征信息;对行驶时长信息进行对数平滑处理,得到预设个数的行驶时长特征信息;根据行驶时长特征信息、斜率特征信息以及当前时刻的时间特征信息确定高峰状态标识。
在一个实施例中,高峰标识确定模块1102,进一步用于确定第一行驶时长信息,以及第一行驶时长信息对应的关联公交的第一行驶顺序;若第一行驶顺序不是末尾行驶顺序,则将第一行驶顺序的下一个行驶顺序作为第二行驶顺序,确定第二行驶顺序对应的关联公交的第二行驶时长信息;基于第二行驶时长信息以及第一行驶时长信息确定与第一行驶时长信息匹配的斜率特征信息。
在一个实施例中,行驶位置区间包括多个子行驶位置区间;实时交通信息包括:实时行驶时长信息;预测请求响应模块1101,进一步用于确定各子行驶位置区间对应的子关联公交;子关联公交为当前时刻前经过各子行驶位置区间前一个公交;当前时刻为到站时长预测请求的触发时刻;确定各子关联公交经过各子行驶位置区间对应的子实时行驶时长信息;对子实时行驶时长信息进行求和处理,得到实时行驶时长信息。
在一个实施例中,基于机器学习算法的公交到站预测装置,还包括:高峰模型训练模块,用于确定样本行驶位置区间,以及经过样本行驶位置区间的多个样本公交对应的样本高峰状态标识;确定与各样本公交匹配的多个样本关联公交;样本关联公交为当前样本时刻前经过样本行驶位置区间的前预设个数的公交;当前样本时刻为样本公交进入样本行驶位置区间的进入时刻;获取各样本关联公交的样本行驶时长信息,并根据样本行驶时长信息得到多个样本斜率特征信息;对样本行驶时长信息进行对数平滑处理,得到多个样本行驶时长特征信息;确定当前样本时刻的时间特征信息;基于样本高峰状态标识,利用样本斜率特征信息、样本行驶时长特征信息,以及当前样本时刻的时间特征信息对预设的神经网络模型进行训练,得到高峰判别模型。
关于机器学习算法的公交到站预测装置的具体限定可以参见上文中对于机器学习算法的公交到站预测方法的限定,在此不再赘述。上述机器学习算法的公交到站预测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储实时交通信息。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种机器学习算法的公交到站预测方法。
本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
- 基于机器学习算法的公交实时到站预测方法、装置和设备
- 基于机器学习算法的公交实时到站预测方法、装置和设备