掌桥专利:专业的专利平台
掌桥专利
首页

基于LSTM模型的快递件量预测方法、装置、设备和存储介质

文献发布时间:2023-06-19 10:05:17


基于LSTM模型的快递件量预测方法、装置、设备和存储介质

技术领域

本发明属于物流管理的技术领域,尤其涉及一种基于LSTM模型的快递件量预测方法、装置、设备和存储介质。

背景技术

随着电子商务以及物流行业的发展,揽件量迅速增长,尤其是法定节假日、购物节等节假日期间快递业务量大幅增长,“爆仓”时有发生。准确的件量预测有助于物流企业合理调配资源,提前做好应对准备。

随着科技的发展,对快递件量的预测从通过人工从经验中得到,发展到通过机器深度学习来得到。机器深度学习通常采用RNN(Recurrent Neural Networks)循环神经网络对快递件量进行预测。相比与普通神经网络的各计算结果之间相互独立的特点,RNN的每一次隐含层的计算结果都与当前输入以及上一次的隐含层结果相关。通过这种方法,RNN的计算结果便具备了记忆之前几次结果的特点。换句话说,RNN的最大特点就是循环利用数据上下文信息的能力。但是,其隐含层的输入随着时间的递推覆盖了原有的数据信息,导致上下文信息的丢失,因此标准的循环神经网络结构在实际应用中能够使用的上下文信息的范围是受限制的,它会造成梯度消失问题。

如图1所示,神经元节点的阴影深度表示各节点与0时刻输入的敏感程度。例如实际应用中假如输出Y3和0时刻的输入敏感度较高,应用传统RNN网络结构进行训练时,Y3与0时刻输入间的敏感度减弱,出现梯度消失问题,导致网络性能不佳。梯度消失问题的本质原因是因为前一时刻向后一时刻传播时,受到了前一时刻输入的影响,使得前一时刻的相关信息丢失。

由于RNN循环神经网络存在梯度消失的问题,不能准确的预测较长时间的数据,使得对快递件量的预测结果不准确。

发明内容

本发明的目的是提供一种基于LSTM模型的快递件量预测方法、装置、设备和存储介质,通过LSTM在神经单元的管道中对数据的输入、输出和遗忘进行门控及逐点操作,避免后一时刻的输入对前一时刻隐含层输出的影响,解决RNN循环神经网络的梯度消失问题,从而提高快递件量预测的准确率。

为解决上述问题,本发明的技术方案为:

一种基于LSTM模型的快递件量预测方法,包括:

步骤S1:获取快递揽件量的历史数据,对历史数据进行预处理,选取出至少一历史周期的目标数据集;

步骤S2:创建基于LSTM的件量预测模型,将目标数据集输入所述件量预测模型,对所述件量预测模型进行训练;

步骤S3:基于所述训练好的件量预测模型,对下一周期的快递揽件量进行预测,输出预测值。

根据本发明一实施例,所述步骤S1进一步包括:

清洗历史数据,替换空数据及异常数据;

对清洗后的历史数据进行归一化,得到所述目标数据集。

根据本发明一实施例,所述替换空数据及异常数据进一步包括:

设置日揽件量的上限及下限,将大于上限或小于下限的日揽件量的值作为异常数据;

将异常数据作为缺失值,进行缺失值补齐。

根据本发明一实施例,所述步骤S2进一步包括:

创建LSTM模型,将目标数据集划分为训练集及验证集,确定LSTM模型训练的epoch值及batch-size值;

根据训练结果,调整LSTM模型的参数,将最终确定的LSTM模型的参数作为所述件量预测模型的参数。

根据本发明一实施例,所述创建LSTM模型进一步包括:

所述LSTM模型包括输入层、隐含层及输出层,所述输入层设有输入阀门,所述隐含层设有遗忘阀门,所述输出层设有输出阀门;

所述输入阀门、所述遗忘阀门或所述输出阀门用于判断LSTM模型网络的相应层的上一个状态的输出数据是否达到预设的阈值,若是,则将所述上一个状态的输出数据与当前层的数据相乘,相乘的结果作为下一层的输入数据;若否,则将上一个状态的输出数据遗忘。

根据本发明一实施例,所述输入阀门、所述遗忘阀门或所述输出阀门采用sigmoid函数将上一个状态的输出数据作为当前状态的输入数据。

根据本发明一实施例,所述创建LSTM模型进一步包括:

设置LSTM模型每一层网络节点的舍弃率,防止过度拟合;

采用均方根误差计算LSTM模型的输出数据与验证数据之间的误差;

采用RMSProp算法作为LSTM模型权重参数的调整方式,经过训练,得到最终确定的LSTM模型的参数。

一种基于LSTM模型的快递件量预测装置,包括:

数据处理模块,用于获取快递揽件量的历史数据,对历史数据进行预处理,选取出至少一历史周期的目标数据集;

模型创建模块,用于创建基于LSTM的件量预测模型,将目标数据集输入所述件量预测模型,对所述件量预测模型进行训练;

件量预测模块,用于基于所述训练好的件量预测模型,对下一周期的快递揽件量进行预测,输出预测值。

一种基于LSTM模型的快递件量预测设备,包括:

存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;

所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于LSTM模型的快递件量预测设备执行本发明一实施例中的基于LSTM模型的快递件量预测方法。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本发明一实施例中的基于LSTM模型的快递件量预测方法。

本发明由于采用以上技术方案,使其与现有技术相比具有以下的优点和积极效果:

1)本发明一实施例中的基于LSTM模型的快递件量预测方法,针对因RNN神经网络的梯度消失,不能准确的预测较长时间的数据而使快递件量预测不准确的问题,通过获取快递揽件量的历史数据,对历史数据进行预处理,选取出至少一历史周期的目标数据集;创建基于LSTM的件量预测模型,将目标数据集输入所述件量预测模型,对件量预测模型进行训练;基于训练好的件量预测模型,对下一周期的快递揽件量进行预测,输出预测值。解决RNN循环神经网络的梯度消失问题,从而提高快递件量预测的准确率。

2)本发明一实施例中的基于LSTM模型的快递件量预测方法,通过对历史数据的清洗,替换空数据和异常数据,减少数据大幅度的波动,使数据趋于平稳,有利于提高件量预测模型的预测效果。另外,对历史数据进行归一化处理,一方面,可加快神经网络中梯度下降时求最优解的速度;另一方面,可简化运算,节约机器资源。

3)本发明一实施例中的基于LSTM模型的快递件量预测方法,通过LSTM模型中的输入阀门、遗忘阀门或输出阀门判断相应层的上一个状态的输出数据是否达到预设的阈值,若是,则将上一个状态的输出数据与当前层的数据相乘,其结果作为下一层的输入数据;若否,则将上一个状态的输出数据遗忘。避免了后一时刻的输入对前一时刻隐含层输出的影响,解决了RNN循环神经网络的梯度消失问题,从而提高快递件量预测的准确率。

附图说明

图1为本发明一实施例中的RNN循环神经网络梯度消失的示意图;

图2为本发明一实施例中的基于LSTM模型的快递件量预测方法流图;

图3为本发明一实施例中的LSTM模型的门控示意图;

图4为本发明一实施例中的LSTM模型的原理图;

图5为本发明一实施例中的基于LSTM模型的快递件量预测装置框图;

图6为本发明一实施例中的基于LSTM模型的快递件量预测设备示意图。

具体实施方式

以下结合附图和具体实施例对本发明提出的一种基于LSTM模型的快递件量预测方法、装置、设备和存储介质作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。

实施例一

请参考图2,本实施例中的基于LSTM模型的快递件量预测方法,包括:

步骤S1:获取揽件量的历史数据,对历史数据进行预处理,选取出至少一历史周期的目标数据集。

在本实施例中,件量历史数据是指物流行业中存储的件量数据,也可以是某统计机构公布的某段时间内物流行业中件量的数据。件量包含揽件量,当然可以是发件量,本实施例以揽件量为例。在数据库中,无论是线上还是线下,均会存储揽件量的信息。该些信息可以但不限于包含:件量的类型、时间、数量。时间可以是按天存储,也可以是按照周存储,也可以按照录入系统的具体时间存储。

步骤S201,对获取的历史数据进行预处理,包括:清洗历史数据,替换空数据及异常数据;步骤S202,对清洗好的历史数据进行归一化处理,得到目标数据集。

其中,清洗历史数据,去除获取的历史数据中不需要的信息及替换异常数据。通常在对数据进行统计分析之前,需要将一些不规则数据滤除掉,以确保分析的准确性。数据清洗是一个减少数据错误与不一致性的过程,主要是检测并删除或改正不规则数据。

在本实施例中,主要是针对揽件量进行预测,因此可以去除历史数据中包含的单号信息及地址信息。在这些历史数据中,可能会出现空数据或数值异常(如非数值表示)或值很小明显异常的数据(如通常日揽件量为5000左右,某一天的揽件量为100,那么该揽件量值为异常数据)。对异常值的处理办法可采用删除法、替代法(连续变量均值替代、离散变量用众数以及中位数替代)、插补法(回归插补、多重插补)等,可以先把异常值变成缺失值,然后进行缺失值补齐。

实际应用中,可通过步骤S301设置日揽件量的上限及下限,将大于上限或小于下限的日揽件量的值作为异常数据;步骤S302然后将异常数据变为缺失值,进行缺失值补齐。

通过对历史数据的清洗,替换空数据和异常数据,减少数据大幅度的波动,使数据趋于平稳,有利于提高件量预测模型的预测效果。

具体地,历史数据包含揽件量,可以根据不同的业务场景从数据库中调取各网点揽件量(有订单、无订单)信息,下面将以某网点的揽件量为测试数据,历史数据所在日期为2017/01/01-2017/7/31,获得的历史数据经过数据清洗后可以如下表1所示。

表1

上表1列出了历史数据中1个月的件量揽收数据。按照上表的格式,将2017/01/01-2017/7/31的历史数据做好处理。

从上表1可以看出,日揽件量的数值都比较大。为了简化运算,节约机器资源,更为了加快神经网络中梯度下降时求最优解的速度,本实施例将清洗好的历史数据进行归一化处理。归一化后的历史数据如下表2所示:

表2

历史数据归一化后,得到本实施例需要的目标数据集。该目标数据集用于后续LSTM模型的训练,通常,将该目标数据集的90%的数据作为训练集,将该目标数据集的10%的数据作为验证集。

步骤S2:创建基于LSTM的件量预测模型,将目标数据集输入件量预测模型,对件量预测模型进行训练。

本实施例采用LSTM模型作为件量预测模型的主要原因是,现有对快递件量预测采用的机器深度学习,通常通过RNN(RecurrentNeural Networks)循环神经网络对快递件量进行预测。相比与普通神经网络的各计算结果之间相互独立的特点,RNN的每一次隐含层的计算结果都与当前输入以及上一次的隐含层结果相关。通过这种方法,RNN的计算结果便具备了记忆之前几次结果的特点。换句话说,RNN的最大特点就是循环利用数据上下文信息的能力。但是,其隐含层的输入随着时间的递推覆盖了原有的数据信息,导致上下文信息的丢失,因此标准的循环神经网络结构在实际应用中能够使用的上下文信息的范围是受限制的,它会造成梯度消失问题。

如图1所示,RNN模型包括输入层、隐含层及输出层,其中,神经元节点的阴影深度表示各节点与0时刻输入的敏感程度。例如实际应用中假如输出Y3和0时刻的输入敏感度较高,应用传统RNN网络结构进行训练时,Y3与0时刻输入间的敏感度减弱,出现梯度消失问题,导致网络性能不佳。梯度消失问题的本质原因是因为前一时刻向后一时刻传播时,受到了前一时刻输入的影响,使得前一时刻的相关信息丢失。由于RNN循环神经网络存在梯度消失的问题,不能准确的预测较长时间的数据,使得对快递件量的预测结果不准确。

而LSTM(Long Short-Term Memory)模型是RNN模型的一种变型,LSTM的特点是在RNN模型结构中新增了各层的阀门节点。

LSTM模型的记忆功能是由上述阀门节点实现的。当阀门打开时,上一时刻的模型训练结果就会关联到当前时刻的模型计算中;当阀门关闭时,上一时刻的模型训练结果就不会影响当前时刻的计算。因此,通过调节阀门的开关就可以实现早期序列(输入数据或中间计算结果)对最终结果的影响。请参看图3,通过阀门控制使序列第1的输入变量影响到了序列第4、6的变量计算结果。图中,黑色实心圆表示对该节点的计算结果输出到下一层或下一次计算中,空心圆表示该节点的计算结果没有输入到网络或没有从上一次计算中说到信号,“-”表示阀门关闭,“o”表示阀门打开。

从神经网络方面来说,RNN中包含一个简单层的重复模块,LSTM也是这种类似的链式结构,但是重复模块中的结构不同。其中并不只有一个简单的神经网络层,而是有四个神经网络层,且通过一种特殊的方式交互。

LSTM中包含四个交互层的重复模块,神经网络层——逐点计算——向量传递——串联——复制。每条线都是一个向量的行进路线,从一个节点的输出到其它节点的输入。粉红色的圆圈代表逐点计算,比如向量加法。黄色的框表示神经网络层。两条线合并表示串联,而分叉代表复制其内容,副本会传递到不同的位置。

LSTM的关键是单元状态,水平线贯穿图中顶部的内容。单元状态有点像传送带,它直接沿着整个链运行,只有一些次要的线性交互。信息很容易沿着它不变的流动。请参看图4,其中,x

z=tanh(w[h

z

z

z

其中,σ为sigmoid函数,

在实际应用中,可采用Python实现LSTM模型的搭建。在Python中有不少包可以直接调用来构建LSTM模型,比如pybrain,kears,tensorflow,cikit-neuralnetwork等。

在搭建LSTM模型的过程中,可采用以下步骤进行:

步骤S401:创建LSTM模型,将目标数据集划分为训练集及验证集,确定LSTM模型训练的epoch值及batch-size值。

基于上述LSTM模型的原理创建该LSTM模型,将目标数据集的90%的数据作为训练集,将该目标数据集的10%的数据作为验证集,用于LSTM模型的训练。在模型训练之前,需要确定LSTM模型训练的epoch值及batch-size值,epoch值表示整个数据集被训练的次数,batch-size值表示一次训练所需的样本数量。本实施例的目标数据集中共有2550个样本,设置batch-size为255,共训练10次,则epoch值为1。

步骤S402:根据训练结果,调整LSTM模型的参数,将最终确定的LSTM模型的参数作为件量预测模型的参数。

由于LSTM模型在训练中,其每一层的阀门节点及其权重都会在每一次模型反向传播的训练过程中更新,因此,需要实现权重参数的更新调整。

神经网络最基本的优化算法是反向传播算法加上梯度下降法,通过梯度下降法,使得网络参数不断收敛到全局(或者局部)最小值,但是由于神经网络层数太多,需要通过反向传播算法,把误差一层一层地从输出传播到输入,逐层地更新网络参数。由于梯度方向是函数值变大的最快的方向,因此负梯度方向则是函数值变小的最快的方向。沿着负梯度方向一步一步迭代,便能快速地收敛到函数最小值。这就是梯度下降法的基本思想。

梯度下降法的迭代公式如下:

ω=ω-α*dω

其中,ω是待训练的网络参数,α是学习率,是一个常数,dω是梯度。

根据上述迭代公式,求解模型参数ω,将最终确定的模型参数ω作为件量预测模型的参数。

由于LSTM模型是在RNN模型上添加了阀门节点,也就是说,在创建LSTM模型的过程中,需包括:

步骤501:LSTM模型包括输入层、隐含层及输出层,输入层设有输入阀门,隐含层设有遗忘阀门,输出层设有输出阀门。

步骤S502:该输入阀门、遗忘阀门或输出阀门用于判断LSTM模型网络的相应层的上一个状态的输出数据是否达到预设的阈值,若是,则将上一个状态的输出数据与当前层的数据相乘,相乘的结果作为下一层的输入数据;若否,则将上一个状态的输出数据遗忘。

具体的,请参看图3,该LSTM模型包括输入层、隐含层及输出层,输入层设有输入阀门,隐含层设有遗忘阀门,输出层设有输出阀门。该输入阀门、遗忘阀门或输出阀门可以根据需要打开或关闭,用于判断LSTM模型网络的记忆态(即上一时刻网络的状态),根据上一时刻网络在输入层、隐含层或输出层的输出数据是否达到预设阈值来判断上一时刻的输出数据是否要加入当前时刻输入层、隐含层或输出层的计算中来。这些阀门节点利用sigmoid函数将模型网络的记忆态作为输入数据来计算。若上一时刻的输出数据达到了阈值,则将该输出数据与当前时刻该层的数据相乘并作为下一层的输入数据(这里的相乘是指矩阵中的逐元素相乘);若上一时刻的输出数据没有达到阈值,则将该输出数据舍弃。每一层的阀门节点及其权重都会在每一次模型反向传播的训练过程中更新。

当阀门打开时,上一时刻的模型训练结果就会关联到当前时刻的模型计算中;当阀门关闭时,上一时刻的模型训练结果就不会影响当前时刻的计算。因此,通过调节阀门的开关就可以实现早期序列(输入数据或中间计算结果)对最终结果的影响。请参看图3,通过阀门控制使序列第1的输入变量影响到了序列第4、6的变量计算结果。图中,黑色实心圆表示对该节点的计算结果输出到下一层或下一次计算中,空心圆表示该节点的计算结果没有输入到网络或没有从上一次计算中说到信号,“-”表示阀门关闭,“o”表示阀门打开。

步骤601:输入阀门、遗忘阀门或输出阀门采用sigmoid函数将上一个状态的输出数据作为当前状态的输入数据。

LSTM模型的记忆功能是由上述阀门节点实现的。这些阀门节点利用sigmoid函数将模型网络的记忆态作为输入数据来计算。

激活函数是一个加入到人工神经网络中的函数,用来帮助网络学习数据中的复杂模式。与人类大脑中基于神经元的模型类比,激活函数最终决定了哪个神经元被激发传递到下一个神经元。这也正是激活函数在人工神经网络中所做的。它接收前一个单元的输出信号,并将其转换成某种形式,作为下一个单元的输入。

以Python中的kears为例,LSTM模型可采用sigmoid函数进行激活。sigmoid函数用在各阀门上,产生0~1之间的值。采用sigmoid函数可直接对LSTM模型上一时刻的数据进行记录(值为1)或舍弃(值为0)的判断。

另外,在LSTM模型中还有一种激活函数:tanh函数。该tanh函数用于LSTM模型的单元状态及数据输出上,产生-1~1之间的值,实现对数据的处理。tanh函数相较于sigmoid函数的优点在于其是中心对称的、均值为0的分布,能将一个0-1高斯分布依然映射到0附近的分布,保持零均值的特性,而且由于其有正有负,所以可以对来自上一层的计算结果表达“支持(值为正)”、“反对(值为负)”、“弃权(值为0)”的意思,其收敛速度较sigmoid函数快一些。

步骤S701:设置LSTM模型每一层网络节点的舍弃率,防止过度拟合。在创建LSTM模型时,将LSTM模型中每一层神经网络的节点的舍弃率设置为0.2。当然,根据需要,该节点舍弃率也可以设置成其他的值。

步骤S702:采用均方根误差计算LSTM模型的输出数据与验证数据之间的误差。

为了衡量LSTM模型的预测效果,在创建LSTM模型时,可通过计算预测值与实测值的误差来衡量。可采用RMSE均方根误差、MEA平均绝对误差、MAPE平均绝对百分比误差等算法实现误差计算。本实施例采用RMSE均方根误差算法,其计算公式为:

在确定LSTM模型的参数时,上述步骤S402中提到了梯度下降法,在此基础上,可有其他多种变种,使得梯度下降法收敛更加迅速和稳定,如Mommentum,RMSProp、Adam等算法。

本实施例采用步骤S703:采用RMSProp算法作为LSTM模型权重参数的调整方式,经过训练,得到最终确定的LSTM模型的参数。

RMSProp(RootMean Square Prop)算法来实现对权重参数的更新调整。该RMSProp算法的更新公式如下:

s

其中,s

s=βs+(1-β)dω

β的典型值是0.999。公式中还有一个ε,这是一个很小的数,典型值是10

根据上述迭代公式,求解模型参数ω,将最终确定的模型参数ω作为件量预测模型的参数。

步骤S3:基于训练好的件量预测模型,对下一周期的快递揽件量进行预测,输出预测值。

训练好的件量预测模型的权重参数、输入维度、输出维度及序列长度等参数设置好,选取一时间序列输入该件量预测模型,输出该时间序列对应的揽件量预测值。

通过上述快递揽件量的预测方法,可达到95%以上的预测准确性,较以前的方法(只能达到80%的准确率)大大提升了揽件量预测的准确性,为物流工作的有序开展提供有力的数据基础,从而提高物流企业的工作效率。

实施例二

本实施例提供了一种基于LSTM模型的快递件量预测装置,请参看图5,该快递件量预测装置包括:

数据处理模块1,用于获取快递揽件量的历史数据,对历史数据进行预处理,选取出至少一历史周期的目标数据集;

模型创建模块2,用于创建基于LSTM的件量预测模型,将目标数据集输入件量预测模型,对件量预测模型进行训练;

件量预测模块3,用于基于训练好的件量预测模型,对下一周期的快递揽件量进行预测,输出预测值。

上述数据处理模块1、模型创建模块2、件量预测模块3的具体内容及实现方法,均如实施例一中所述,在此不再赘述。

实施例三

上述实施例二从模块化功能实体的角度对本发明基于LSTM模型的快递件量预测装置进行详细描述,下面从硬件处理的角度对本发明基于LSTM模型的快递件量预测设备进行详细描述。

请参看图6,该基于LSTM模型的快递件量预测设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对基于LSTM模型的快递件量预测设备500中的一系列指令操作。

进一步地,处理器510可以设置为与存储介质530通信,在基于LSTM模型的快递件量预测设备500上执行存储介质530中的一系列指令操作。

基于LSTM模型的快递件量预测设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve、Vista等等。

本领域技术人员可以理解,图6示出的基于LSTM模型的快递件量预测设备结构并不构成对基于LSTM模型的快递件量预测设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质。该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行实施例一中的基于LSTM模型的快递件量预测方法的步骤。

实施例二中的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件的形式体现出来,该计算机软件存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-only memory,ROM)、随机存取存储器(Random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置及设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式。即使对本发明作出各种变化,倘若这些变化属于本发明权利要求及其等同技术的范围之内,则仍落入在本发明的保护范围之中。

相关技术
  • 基于LSTM模型的快递件量预测方法、装置、设备和存储介质
  • 基于模型融合的件量预测方法、装置、设备及存储介质
技术分类

06120112409311