基于优化LSTM模型的道路停车泊位预测方法
技术领域
本发明涉及道路停车场泊位预测领域,更具体地,涉及一种基于优化LSTM模型的道路停车泊位预测方法。
背景技术
随着我国经济的飞速发展,城市公共停车设施的建设也越来越受到重视,而城市车辆保有量迅速增长,外来车辆大量增加,公共停车设施的严重滞后,停车设施多头分散管理、相互脱钩、缺乏联系与协调使目前的停车愈加困难,尤其是中心商务区的停车难问题日益突出。
随着车辆数量的增加,由于缺乏有效的管理,城市道路或城镇道路旁的车辆的乱停乱放的现象越发严重,很多车辆甚至在禁止区域内停车。这种违法停车的现象不仅造成了道路行车的拥堵,而且逐渐演变成为引发交通事故的一个重要原因。
当前现有的对停车泊位的预测算法有非线性时间序列分析法、系统模糊分析法、神经网络分析法等,它们存在以下问题:
非线性时间序列分析法虽然结合多种影响因素,可对有效停车泊位进行短时预测,但其对数据的波动性处理能力较弱,预测结果的稳定性较差。系统模糊分析法可明显降低采集数据的波动率,并对输出结果进行的处理,但其运算能力具有一定局限性,数据较大情况下准确率会有所下降。神经网络分析法虽具有较高的容错性及鲁棒性,具有拟合非线性复杂系统的预测能力,但由于其对输入数据的处理能力有限,预测容易陷入局部最优,并且预测结果随机波动性较大,预测结果有时稳定性较差。
因此亟待设计一种预测结果稳定、预测准确度高的道路停车泊位预测方法。
发明内容
有鉴于此,本发明提供了一种基于优化LSTM模型的道路停车泊位预测方法,解决了现有技术中对停车场的剩余停车泊位数预测结果不稳定,准确度低的问题。
为了解决上述问题,本发明提供了一种基于优化LSTM模型的道路停车泊位预测方法,包括:
步骤S1:接收停车泊位预测请求,其中,所述停车泊位预测请求用于请求预测目标停车场内预定时间段中每间隔单位时间的剩余停车泊位数;
步骤S2:获取所述目标停车场的历史停车数据,其中,所述历史停车数据包括车辆标识、车辆行驶目标和数据记录时间,其中,所述车辆行驶目标为驶入停车场或驶出停车场;
步骤S3:根据所述历史停车数据计算所述目标停车场内每间隔所述单位时间的历史剩余停车泊位数得到样本集x(0)={x1,x2,…,xk},其中,xi为第i个所述单位时间时所述目标停车场内剩余停车泊位数,i大于等于1且小于等于k;
步骤S4:将所述样本集划分为训练集和测试集,其中,所述训练集包括所述样本集中的前N个剩余停车泊位数,所述测试集包括所述样本集中的第N+1至第k个剩余停车泊位数,N大于1且小于k;
步骤S5:对所述训练集和所述测试集进行归一化处理,得到归一化训练集和归一化测试集;
步骤S6:将所述归一化训练集输入神经网络模型进行训练,得到第一预测结果集,其中,所述神经网络模型依次包括第一LSTM层、Bi-LSTM层、第二LSTM层、全连接层和输出层,所述神经网络模型用于根据时间序列数据中的第m-(s-1)至第m-1个数据预测第m个数据,s大于1,m大于s-1;
步骤S7:判断训练误差是否小于第一预定误差阈值,判断训练次数是否达到预定次数阈值;
步骤S8,若所述训练误差小于所述第一预定误差阈值,和/或所述训练次数达到所述预定次数阈值,则将所述归一化测试集输入至所述神经网络模型,得到第二预测结果集,并执行步骤S10;
步骤S9,若所述训练误差不小于所述第一预定误差阈值且所述训练次数未达到所述预定次数阈值,则将所述训练次数加1,并返回步骤S6,其中,所述训练次数的初始值为1;
步骤S10:将所述第二预测结果集进行反归一化处理;
步骤S11:计算反归一化处理后的所述第二预测结果集中的预测结果与所述测试集中对应的剩余停车泊位数之间的误差;
步骤S12:判断所述误差是否小于第二预定误差阈值;
步骤S13:若所述误差不小于所述第二预定误差阈值,则根据所述误差调整所述神经网络模型的参数,将所述训练次数置为1,并返回步骤S6;
步骤S14:若所述误差小于所述第二预定误差阈值,则将所述第二预测结果集中对应所述预定时间段的数据输出。
进一步的,所述停车泊位预测请求用于请求预定日期内预定时间段中每间隔单位时间的剩余停车泊位数,所述步骤S2包括:
判断所述预定日期为工作日或休息日;
若所述预定日期为工作日,则获取所述目标停车场的工作日的历史停车数据;
若所述预定日期为休息日,则获取所述目标停车场的休息日的历史停车数据;
进一步的,在所述步骤S5中,采用以下公式对所述训练集和测试集中的数据进行归一化处理:
xk=(xk-xmin)/(xmax-xmin),
其中,xmax为所述样本集中的最大值,xmin为所述样本集中的最小值。
进一步的,所述步骤S3包括:
统计第i个所述单位时间内车辆行驶目标为驶入停车场的车辆的数量Ai:
统计第i个所述单位时间内车辆行驶目标为驶出停车场的车辆的数量Bi;
根据所述第i个单位时间内车辆行驶目标为驶入停车场的车辆的数量Ai和车辆行驶目标为驶出停车场的车辆的数量Bi计算第i个所述单位时间时所述目标停车场内历史剩余停车泊位数xi。
进一步的,所述步骤S3还包括:获取所述历史停车数据中最后一个所述数据记录时间时,所述目标停车场内的剩余停车泊位数作为xk+1;
根据所述第i个单位时间内车辆行驶目标为驶入停车场的车辆的数量Ai和车辆行驶目标为驶出停车场的车辆的数量Bi计算第i个所述单位时间时所述目标停车场内历史剩余停车泊位数xi时,采用以下公式进行计算:
xi=xi+1+Ai-Bi。
进一步的,所述步骤S3还包括:获取所述历史停车数据中第一个所述数据记录时间时,所述目标停车场内的剩余停车泊位数作为x0;
根据所述第i个单位时间内车辆行驶目标为驶入停车场的车辆的数量Ai和车辆行驶目标为驶出停车场的车辆的数量Bi计算第i个所述单位时间时所述目标停车场内历史剩余停车泊位数xi时,采用以下公式进行计算:
xi=xi-1-Ai+Bi。
进一步的,在所述神经网络模型中:
将输入数据依次输入所述第一LSTM层,得到所述第一LSTM层的输出结果;
从所述第一LSTM层接收到的输入数据中的第s-1个数据开始,将所述第一LSTM层的输出结果输入至所述Bi-LSTM层,得到所述Bi-LSTM层的输出结果;
将所述Bi-LSTM层的输出结果输入所述第二LSTM层,所述第二LSTM层的输出结果;
将所述第二LSTM层的输出结果输入所述全连接层,得到所述全连接层的输出结果;
将所述全连接层的输出结果输入所述输出层,所述输出层输出预测结果。
进一步的,所述步骤S11包括:
计算反归一化处理后的所述第二预测结果集中的预测结果与所述测试集中对应的剩余停车泊位数之间的均方误差。
进一步的,所述步骤S13包括:
根据所述误差调整所述神经网络模型中每层神经网络神经元的个数、学习率、训练批次和训练数据长度。
进一步的,所述全连接层的激活函数为sigmoid函数。
与现有技术相比,本发明提供的基于优化LSTM模型的道路停车泊位预测方法,至少实现了如下的有益效果:
一、本发明采用了循环神经网络模型,基于长短期记忆网络LSTM和双向LSTM网络的有效停车泊位组合预测模型,可大幅度减弱有效停车泊位时间序列数据的随机波动性,有效处理和预测时间序列数据中间隔和延迟相对较长的事件;
二、通过对每一次第二预测结果集中的预测结果计算预测结果与测试集中对应的剩余停车泊位数之间的均方和误差,并根据误差调整神经网络模型中每层神经网络神经元的个数、学习率、训练批次和数据长度,在调整之后继续对测试集中的数据进行训练,通过反复训练可以提高神经网络模型预测结果的准确性,并且每一次训练都根据误差调整神经网络模型的参数,使神经网络模型以更高的效率进行预测和学习。
当然,实施本发明的任一产品必不特定需要同时达到以上所述的所有技术效果。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是基于优化LSTM模型的道路停车泊位预测方法的流程图;
图2是另一种基于优化LSTM模型的道路停车泊位预测方法的流程图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
实施例1:
本实施例提供了一种基于优化LSTM模型的道路停车泊位预测方法,用于对目标停车场的停车泊位的数量进行预测,如图1是基于优化LSTM模型的道路停车泊位预测方法的流程图;该方法包括以下步骤:
步骤S1:接收停车泊位预测请求;
其中,停车泊位预测请求用于请求预测目标停车场内预定时间段中每间隔单位时间的剩余停车泊位数,例如,当前时间为8月3日,预定时间段可以为8月3日至8月4日,单位时间为一小时,目标停车场为A停车场,则停车泊位预测请求为预测从8月3日到8月4日之间每间隔一小时的A停车场的剩余停车泊位数的请求。
步骤S2:获取目标停车场的历史停车数据;
其中,历史停车数据包括车辆标识、车辆行驶目标和数据记录时间,车辆行驶目标为驶入停车场或驶出停车场;
对于一个目标停车场而言,通常具有入口和出口,在入口处和出口处均设置有摄像装置,车辆在驶入或驶出目标停车场时,通过摄像装置均会记录车辆的车辆标识信息和时间信息。该步骤用于获取一定时间段内的所有车辆驶入和驶出目标停车场的记录,同时记录驶入或驶出的车辆标识信息,车辆标识信息可以为车牌号信息。例如,在8月3日下午4点获取目标停车场的历史数据时,可以获取8月3日下午4点到3月3日下午4点之间,所有驶入目标停车场的车辆记录和所有驶出目标停车场的车辆记录,具体的,对于每一辆驶入或驶出目标停车场的车辆,都记录其驶入/驶出的时间。需要说明的是,历史停车数据可以根据经验和需求灵活选取,可以选取任意时间长度的历史停车数据,通常情况下,为了使预测更加准确,选择较长时间长度的数据,例如选择半年或一年的历史停车数据。本发明并不对历史停车数据具体时间长度的选择进行限定。
步骤S3:根据历史停车数据计算目标停车场内每间隔单位时间的历史剩余停车泊位数得到样本集;
其中,得到的样本集为x(0)={x1,x2,…,xk},xi为第i个单位时间时目标停车场内剩余停车泊位数,i大于等于1且小于等于k,k为样本集中所有样本的个数,样本集中各个样本按照时间顺序先后排列;
例如当前时间为8月3日19点,当前时刻目标停车场剩余停车泊位数为120个,获取到的历史停车数据为2月3日8点到8月3日19点之间的历史停车数据。以单位时间为1小时,那么根据历史停车数据和当前时间剩余的停车泊位数,可以推算出8月3日的18点、17点、16点…直至2月3日10点、9点和8点,每一个整点时刻的剩余停车泊位数,从而得到一个样本集x(0)={x1、x2、…xk},其中,8月3日18点的剩余停车泊位数xk根据8月3日19点时的剩余停车泊位数120个,以及8月3日18点至19点之间目标停车场内出入车辆进行计算,8月3日17点的剩余停车泊位数xk-1根据8月3日18点时的剩余停车泊位数xk,以及8月3日17点至18点之间目标停车场内出入车辆进行计算,以此类推,2月3日8点的剩余停车泊位数x1根据2月3日9点时的剩余停车泊位数x2,以及2月3日8点至9点之间目标停车场内出入车辆进行计算,由此可得到样本集x(0)={x1、x2、…xk}。进一步的,单位时间也可以为任意时间长度,例如也可以为半小时等,不仅限于本方案提出的一小时。
步骤S4:将样本集划分为训练集和测试集;
其中,训练集包括样本集中的前N个剩余停车泊位数,测试集包括样本集中的第N+1至第k个剩余停车泊位数,N大于1且小于k;
例如对于步骤S2中的举例,可以将样本集中的前三分之二样本作为训练集,即N=2k/3,样本集中的后三分之一样本作为测试集。那么训练集就为测试集就为
步骤S5:对训练集和测试集进行归一化处理,得到归一化训练集和归一化测试集;
步骤S6:将归一化训练集输入神经网络模型进行训练,得到第一预测结果集;
其中,神经网络模型依次包括第一LSTM层、Bi-LSTM层、第二LSTM层、全连接层和输出层,神经网络模型用于根据时间序列数据中的第m-(s-1)至第m-1个数据预测第m个数据,s大于1,m大于s-1;
具体的,对于步骤S4中所举的训练集,将该训练集转化为归一化训练集后,神经网络模型可以根据时间序列数据中第1个数据到第5个数据,来预测第6个数据,也即通过x1、x2、x3、x4、x5的值预测x6的值,通过x2、x3、x4、x5、x6的值预测x7的值,以此类推。
步骤S7:判断训练误差是否小于第一预定误差阈值,判断训练次数是否达到预定次数阈值;
第一预定误差阈值用于检验神经网络模型所预测的数据是否达到预期最小误差,训练次数阈值为设定的神经网络模型最大训练次数。若在训练误差没有达到最小误差且训练次数还没有达到训练次数阈值,则继续进行下一步骤S9,若训练误差已经达到最小误差或者训练次数已经达到训练次数阈值,或者训练误差已经达到最小误差并且训练次数已经达到训练次数阈值,则继续执行步骤S8。
步骤S8,将归一化测试集输入至神经网络模型,得到第二预测结果集;
其中,在执行步骤S8之后执行步骤S10。
步骤S9,将训练次数加1;
其中,在执行步骤S9之后返回步骤S6,其中,训练次数的初始值为1;
例如预定的次数阈值为20次,代表神经网络模型最多进行20次的训练,如果在20次之内,神经网络模型的预测结果的误差不小于第一预定误差阈值,则再次进行预测,并检测新的预测结果的训练误差是否小于第一预定误差阈值,在20次的限制之内,神经网络模型反复训练,直到预测结果小于第一预定误差阈值为止;如果在20次预测次数之内,神经网络模型的预测结果的训练误差已经小于第一预定误差阈值,或者神经网络模型的预测次数已经达到了20次,那么将归一化测试集输入神经网络模型进行测试,得到第二预测结果集,再执行步骤S10。
步骤S10:将第二预测结果集进行反归一化处理;
由于二次预测结果及是基于归一化处理后的测试集进行的预测,因此将二次预测结果集进行反归一化处理后,得到的结果集就是直接反应目标停车场停车泊位数的结果集。
步骤S11:计算反归一化处理后的第二预测结果集中的预测结果与测试集中对应的剩余停车泊位数之间的误差;
例如对于步骤S4中所举的测试集经过归一化处理后可以得到归一化测试集将归一化测试集输入神经网络模型中可以根据的值来预测的值,将预测得到的的值经过反归一化处理后得到的结果代表通过神经网络模型预测得到的目标停车场第个单位时间时的剩余停车泊位数。在将反归一化处理后的结果与测试集中的实际数值进行对比时,根据与进行计算,以确定预测结果与测试集中对应的剩余停车泊位数之间的误差。
步骤S12:判断误差是否小于第二预定误差阈值;
步骤S13:若误差不小于第二预定误差阈值,则根据误差调整神经网络模型的参数,将训练次数置为1,并返回步骤S6;
步骤S14:若误差小于第二预定误差阈值,则将第二预测结果集中对应预定时间段的数据输出。
当反归一化后的结果的误差不小于第二预定误差阈值时,证明神经网络模型的预测结果不理想,需要重新调整神经网络模型的参数,并返回步骤S6中,从训练集开始重新预测,直到第二预测结果集经过反归一化处理后误差值小于第二预定阈值,再将第二预定结果集对应的预定时间段的数据输出;
当反归一化后的结果的误差小于第二预定误差阈值时,证明神经网络模型已经取得了理想预测效果,因此可以直接将第二预测结果集所对应的预定时间段的数据输出。
以上为神经网络模型的训练过程,在通过步骤S1到S14得到训练完毕的神经网络模型之后,可以直接将神经网络模型用于实际的预测,只需要提供历史停车数据即可。
通过本实施例提供的基于优化LSTM模型的道路停车泊位预测方法,具有以下有益效果:
本实施例采用了循环神经网络模型,基于长短期记忆网络LSTM和双向LSTM网络的有效停车泊位组合预测模型,可大幅度减弱有效停车泊位时间序列数据的随机波动性,有效处理和预测时间序列数据中间隔和延迟相对较长的事件。
实施例2:
本实施例在实施例1的基础上,提供了一种优选的基于优化LSTM模型的道路停车泊位预测方法,如图2所示为基于优化LSTM模型的道路停车泊位预测方法流程图。
具体的,该方法包括以下步骤:
S201:接收停车泊位预测请求,
其中,停车泊位预测请求用于请求预定日期内预定时间段中每间隔单位时间的剩余停车泊位数,例如,当前时间为8月3日,预定时间段可以为8月3日至8月4日,单位时间为一小时,目标停车场为A停车场,则停车泊位预测请求为预测从8月3日到8月4日之间每间隔一小时的A停车场的剩余停车泊位数的请求。
S202:判断预定日期为工作日或休息日,若为工作日,则获取目标停车场的工作日的历史停车数据,若为休息日则获取目标停车场的休息日的历史停车数据;
其中,历史停车数据包括车辆标识、车辆行驶目标和数据记录时间,车辆行驶目标为驶入停车场或驶出停车场。
S203:统计第i个单位时间内车辆行驶目标为驶入停车场的车辆的数量Ai;
单位时间为人为设定的时间段,例如可以为1小时或30分钟或20分钟等,以一小时作为单位时间为例,例如从8月3日的上午8点到上午12点之间,可以分为4个单位时间,第一个单位时间为8点到9点,依次类推最后一个单位时间为11点到12点。
该步骤S203用于统计每个单位时间内,驶入目标停车场的车辆数量。
S204:统计第i个单位时间内车辆行驶目标为驶出停车场的车辆的数量Bi:
由于停车场通常有入口和出口,并且在入口和出口均有摄像装置,车辆在驶入或驶出停车场时均会有车辆信息记录和时间记录,这些记录都会保存在历史停车记录中,因此Ai和Bi可以直接通过历史停车数据获取。
该步骤S203用于统计每个单位时间内,驶出目标停车场的车辆数量。
S205:获取历史停车数据中最后一个数据记录时间时,目标停车场内的剩余停车泊位数作为xk+1。
例如,历史停车数据中,最后一个数据记录时间为8月3日上午12点,则该步骤S205用于获取8月3日上午12点时目标停车场内的剩余停车泊位数。
S206:根据第i个单位时间内车辆行驶目标为驶入停车场的车辆的数量Ai和车辆行驶目标为驶出停车场的车辆的数量Bi计算第i个单时间时目标停车场内历史剩余停车泊位数xi。
具体公式为:xi=xi+1+Ai-Bi。
例如,历史停车数据为在2月3日上午8点到8月3日上午12点之间驶入和驶出目标停车场的车辆情况,通过上述步骤S203和步骤S204,统计出每间隔单位时间1小时,驶入和驶出目标停车场的车辆,那么在得知最后一个数据记录时间,也即8月3日上午12点时目标停车场的剩余停车泊位数后,就可以推算出往前间隔一个单位时间时,也即8月3日上午11点目标停车场的剩余停车泊位数。比如已经得知在8月3日上午12点时,目标停车场的剩余停车泊位数为100,在8月3日上午11点至12点之间,驶入目标停车场的车辆数量为5,驶出目标停车场的车辆数量为2,那么通过公式xi=xi+1+Ai-Bi很容易求出在8月3日上午11点时,目标停车场的剩余停车泊位数为100+5-2=103。根据上午11点时目标停车场的剩余停车泊位数103可以求出8月3日上午10点时的目标停车场的剩余停车泊位数。依次类推,可以求出8月3日上午9点、8月3日上午8点…到2月3日上午8点之间每一个整点时目标停车场的剩余停车泊位数,其中,2月3日上午8点时目标停车场的剩余停车泊位数为x1,2月3日上午9点时目标停车场的剩余停车泊位数为x2,2月3日上午10点时目标停车场的剩余停车泊位数为x3,以此类推,8月3日上午11点时目标停车场的剩余停车泊位数为xk。进一步的,单位时间也可以为任意时间长度,例如也可以为半小时等,不仅限于本方案提出的一小时。
综上,根据历史停车数据计算目标停车场内每间隔单位时间的历史剩余停车泊位数可以得到样本集x(0)={x1,x2,…,xk},其中,xi为第i个单位时间时目标停车场内剩余停车泊位数,i大于等于1且小于等于k;k为样本集中所有样本的个数,样本集中各个样本按照时间顺序先后排列。
通过步骤206,可以求出目标停车场在预定时间段内每间隔单位时间时的剩余停车泊位数,即可得到样本集x(0)。
S207:将样本集划分为训练集和测试集;
其中,训练集包括样本集中的前N个剩余停车泊位数,测试集包括样本集中的第N+1至第k个剩余停车泊位数,N大于1且小于k;
例如对于步骤S206中的举例,可以将样本集中的前三分之二样本作为训练集,即N=2k/3,样本集中的后三分之一样本作为测试集。那么训练集就为测试集就为
步骤S208:对训练集和测试集进行归一化处理,得到归一化训练集和归一化测试集;
具体的,采用以下公式对训练集和测试集中的数据进行归一化处理:
xk=(xk-xmin)/(xmax-xmin),
其中,xmax为样本集中的最大值,xmin为样本集中的最小值。
步骤S209:将归一化训练集作为输入数据输入依次输入神经网络模型的第一LSTM层、Bi-LSTM层、第二LSTM层、全连接层和输出层,得到第一预测结果集。
具体的,以归一化训练集作为输入数据,首先输入第一LSTM层,得到第一LSTM层的输出结果;
从第一LSTM层接收到的输入数据中的第s-1个数据开始,将第一LSTM层的输出结果输入至Bi-LSTM层,得到Bi-LSTM层的输出结果;
将Bi-LSTM层的输出结果输入第二LSTM层,第二LSTM层的输出结果;
将第二LSTM层的输出结果输入全连接层,得到全连接层的输出结果;其中全连接层的激活函数为sigmoid函数。
将全连接层的输出结果输入输出层,输出层输出预测结果。
具体的,对于步骤S207中所举的训练集,将该训练集转化为归一化训练集后得到归一化训练集神经网络模型可以根据归一化训练集中的x1’、x2’、x3’、x4’、x5’来预测x6’的值,通过x2’、x3’、x4’、x5’、x6’的值来预测x7’的值。依次类推。
S210:判断训练误差是否小于第一预定误差阈值,判断训练次数是否达到预定次数阈值:
第一预定误差阈值用于检验神经网络模型所预测的数据是否达到预期最小误差,训练次数阈值为设定的神经网络模型最大训练次数。若在训练误差没有达到最小误差且训练次数还没有达到训练次数阈值,则继续进行下一步骤S212。若训练误差已经达到最小误差或者训练次数已经达到训练次数阈值,或者训练误差已经达到最小误差并且训练次数已经达到训练次数阈值,则继续执行步骤S211。
步骤S211,则将归一化测试集输入至神经网络模型,得到第二预测结果集,并执行步骤S214;
步骤S212,将训练次数加1,其中,训练次数的初始值为1;在执行完步骤S212后,返回步骤S209。
例如预定的次数阈值为20次,代表神经网络模型最多进行20次的预测,如果在20次之内,神经网络模型的预测结果的误差不小于第一预定误差阈值,则再次进行预测,并检测新的预测结果的训练误差是否小于第一预定误差阈值,在20次的限制之内,神经网络模型反复训练,直到预测结果小于第一预定误差阈值为止;如果在20次预测次数之内,神经网络模型的预测结果的训练误差已经小于第一预定误差阈值,或者神经网络模型的预测次数已经达到了20次,那么再将归一化测试集输入神经网络模型进行训练,得到第二预测结果集,再执行步骤S213。
S213:将第二预测结果集进行反归一化处理;
由于二次预测结果及是基于归一化处理后的测试集进行的预测,因此将二次预测结果集进行反归一化处理后,得到的结果集就是直接反应目标停车场停车泊位数的结果集。
步骤S214:计算反归一化处理后的第二预测结果集中的预测结果与测试集中对应的剩余停车泊位数之间的均方误差;
例如对于步骤S207中所举的测试集经过归一化处理后可以得到归一化测试集将归一化测试集输入神经网络模型中可以根据的值来预测的值,将预测得到的的值经过反归一化处理后得到的结果代表通过神经网络模型预测得到的目标停车场第个单位时间时的剩余停车泊位数。在将反归一化处理后的结果与测试集中的实际数值进行对比时,根据与进行计算,以确定预测结果与测试集中对应的剩余停车泊位数之间的误差。
步骤S215:判断误差是否小于第二预定误差阈值;
步骤S216:若误差不小于第二预定误差阈值,则根据误差调整神经网络模型的参数,将训练次数置为1,同时根据误差调整神经网络模型中每层神经网络神经元的个数、学习率、训练批次和训练数据长度,并返回步骤S209重新训练;
步骤S217:若误差小于第二预定误差阈值,则将第二预测结果集中对应预定时间段的数据输出。
当反归一化后的结果的误差不小于第二预定误差阈值时,证明神经网络模型的预测结果不理想,需要重新调整神经网络模型的参数,并返回步骤S209中,从训练集开始重新预测,直到第二预测结果集经过反归一化处理后误差值小于第二预定阈值,再将第二预定结果集对应的预定时间段的数据输出;
当反归一化后的结果的误差小于第二预定误差阈值时,证明神经网络模型已经取得了理想预测效果,因此可以直接将第二预测结果集所对应的预定时间段的数据输出。
通过本实施例提供的基于优化LSTM模型的道路停车泊位预测方法,具有以下有益效果:
通过对每一次第二预测结果集中的预测结果计算预测结果与测试集中对应的剩余停车泊位数之间的均方和误差,并根据误差调整神经网络模型中每层神经网络神经元的个数、学习率、训练批次和数据长度,在调整之后继续对测试集中的数据进行训练,通过反复训练可以提高神经网络模型预测结果的准确性,并且每一次训练都根据误差调整神经网络模型的参数,使神经网络模型以更高的效率进行预测和学习。
实施例3:
本实施例在实施例1和实施例2的基础上,提供了另一种基于优化LSTM模型的道路停车泊位预测方法。大致内容与实施例2相同,可以参照实施例2的描述。不同之处在于:在根据历史停车数据计算目标停车场内每间隔单位时间的历史剩余停车泊位数得到样本集x(0)={x1,x2,…,xk}的步骤中,通过以下方法得到样本集:
S301:统计第i个单位时间内车辆行驶目标为驶入停车场的车辆的数量Ai;
单位时间为人为设定的时间段,例如可以为1小时或30分钟或20分钟等,以一小时作为单位时间为例,例如从8月3日的上午8点到上午12点之间,可以分为4个单位时间,第一个单位时间为8点到9点,依次类推最后一个单位时间为11点到12点。
S302:统计第i个单位时间内车辆行驶目标为驶出停车场的车辆的数量Bi;
S303:获取历史停车数据中第一个数据记录时间时,目标停车场内的剩余停车泊位数作为x0。
例如对于步骤301中的例子,第一个数据记录时间为历史停车数据中最早的一个数据记录时间,例如,最早的数据记录时间为2月3目的上午8点,则该步骤获取2月3目的上午8点时目标停车场的停车泊位数为100,即x0=100。
S304:根据第i个单位时间内车辆行驶目标为驶入停车场的车辆的数量Ai和车辆行驶目标为驶出停车场的车辆的数量Bi计算第i个单位时间时目标停车场内历史剩余停车泊位数xi时,采用以下公式进行计算:
xi=xi-1-Ai+Bi。
例如历史数据是从2月3日上午8点到8月3日上午8点,单位时间为1小时,通过步骤S301和S302获取到每一个单位时间目标停车场的驶入车辆数量和驶出车辆数量,那么在通过步骤S303获取到目标停车场历史停车数据中第一个数据记录时间时目标停车场的剩余停车泊位数时,例如在2月3日上午8点整时目标停车场的剩余停车泊位数为100,在第一个单位时间内,也即2月3日上午8点至9点,驶入目标停车场的车辆数量为5,驶出目标停车场的车辆数量为3,那么可通过公式求得x1=100-5+3=98,也即在9点整时,目标停车场的剩余停车泊位数为98,并且可以通过9点整时目标停车场的剩余停车泊位数以及第二个单位时间内的驶入和驶出的车辆情况来计算10点整时目标停车场的剩余停车泊位数。以此类推可以求出2月3日上午8点到8月3日上午8点之间每一个整点时刻的剩余停车泊位数。
通过本实施例提供的基于优化LSTM模型的道路停车泊位预测方法,可以在得到目标停车场的历史停车数据中第一个单位时间的历史剩余停车泊位数后,推算出所有单位时间的历史停车泊位数,更加灵活的获取目标停车场的历史停车数据。
虽然已经通过例子对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上例子仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。