一种基于长短期记忆循环神经网络的银行网点备付金预测方法与流程

文档序号:12721584阅读:376来源:国知局
一种基于长短期记忆循环神经网络的银行网点备付金预测方法与流程
本发明涉及一种基于长短期记忆循环神经网络的银行网点备付金预测方法。
背景技术
:近年来,随着第三方支付机构的兴起与发展,商业银行现金业务受到了一定的冲击,商业银行中间业务首当其冲。商业银行中间业务主要包括支付结算、担保、承诺、交易、查询等,作为传统媒介的支付结算业务是最重要的部分。商业银行财务绩效体系主要衡量流动性、安全性、盈利性三个指标,其中,备付金比例是影响三大指标的关键因素。对银行网点而言,备付金代表其辐射范围的现金业务活跃度,这一活跃度受日期属性的影响。通常,银行网点在工作日交易较为频繁,尤其是对公业务需求旺盛,而在节假日期间,银行网点通常只提供自助存取款服务,大额交易较少。因此,预测银行网点备付金需求时,需要首先考虑日期属性。一方面,银行网点备付金预测基于以往一段时间内银行网点的现金交易情况,主要依据银行网点的现金业务日净额,对备付金需求进行预测。在一段时间内,银行网点营业日净额是一组时间序列,因此,银行网点备付金预测可以转换成时间序列预测问题。国内外研究人员在时间序列方向上进行了相关研究。传统构建时间序列模型的方法,例如自回归模型、线性动态模型,这一类方法通常是模拟时间序列是线性相关的,并不适用于银行备付金这种非线性结构数据的预测。另一方面,随着深度学习的飞速发展,神经网络技术也在不断更新。递归神经网络(RNNs,RecurrentNeuralNetworks)由于具有自学习特性,且其展开模型就是时间依赖模型,因此其特别适合时间序列预测。自然语言处理(NLP)中就通过使用RNNs来预测单词。理论上而言,RNNs可以记住长久的信息,来预测时间序列,但实际上,RNNs对长远依赖信息处理能力不足。可见,不管是在实际应用还是科学研究中,时间序列有着重要的研究价值。然而,已有的研究成果还不能满足越来越复杂的应用场景对时间序列预测提出的新需求,目前的备付金预测大多采用统计学方法,难以高效、精准地应对备付金预测需求。因此,设计一种能够高效且精准预测银行网点备付金需求的方法具有重大的研究意义。技术实现要素:本发明所解决的技术问题是,针对现有技术不足,提出一种基于长短期记忆循环神经网络(LongShortTermMemory,LSTM)的银行网点备付金预测系统,将银行网点日净额作为备付金需求的参考标准,并结合预测日期的日期属性为银行网点建立LSTM预测模型,有效地从银行网点过往的现金交易记录中挖掘出银行网点指定日期的备付金需求,能有效提高银行网点备付金预测精度。为解决上述技术问题,本发明所采用的技术方案是:一种基于长短期记忆循环神经网络的银行网点备付金预测方法,其特征在于,包括数据预处理阶段、模型训练阶段和预测阶段;所述数据预处理阶段,收集银行网点若干天的现金交易记录作为训练集,构建交易数据库,数据库中包括根据每日的现金交易记录以日为单位构建的特征向量,以及根据每日的现金交易记录计算得到的日净额;所述模型训练阶段,搭建具有若干个隐含层的长短期记忆循环神经网络模,即LSTM模型,其中每个隐含层包含若干个神经元,利用交易数据库中的特征向量和日净额对LSTM模型进行训练,得到最优LSTM模型权重参数;所述预测阶段,确定待预测的银行网点和预测日期,收集该银行网点前若干天的现金交易记录,然后分别转换成特征向量输入到LSTM预测模型中,输出预测结果,即备付金预测值。进一步地,在数据预处理阶段,以日为单位,统计每日的总存款额、总取款额以及日期属性,建特征向量,格式如下:[月份,日期,总存款额,总取款额,日期属性],其中,日期属性分为工作日、周六、周日和节假日,分别标记为0、1、2、3,并且节假日属性优于其他日期属性;根据现金交易记录计算日净额;统计一段周期内银行网点的日净额分布,得到置信区间;并将置信区间作为预测总区间,将其划分成N_CLASS个子区间;根据每日的日净额所处子区间将其标记为一个N_CLASS维的one-hot向量,one-hot向量中的每一个维度对应一个子区间,该日的日净额所处子区间对应维度的向量元素标为1,其他维度的向量元素标为0。进一步地,所述N_CLASS取值为5。根据银行网点训练集日净额分布图(图2)可以看出,银行网点日净额大致满足正态分布的特点。因此,假设待预测的数据服从正态分布,以确定其取值范围的边界。接下来,就可以将边界内划分成不同区间,从而得到不同样本按区间分类的标记。基于正态分布的假设,计算训练集样本的日净额的均值(MEAN)和标准差(STD)。以99%置信区间作为全体样本的日净额分布范围[MEAN-2.576*STD,MEAN+2.576*STD]。将这一分布范围等分成N_CLASS个子区间,这些子区间以左闭右开为划分标准。划分成N_CLASS个子区间后,将各子区间按照0至N_CLASS-1编号,并确定所有样本的日净额所在区间,不在N_CLASS区间范围的数据则就近划分至第0个区间或者第N_CLASS-1个区间;将样本的日净额的区间分类转化成one-hot向量形式。因此,本银行网点备付金预测就是要预测指定日期的备付金需求将会落在具体哪一个子区间当中。所述预测阶段,依次将不同日期的特征向量输入到LSTM预测模型中,经过输入门层、遗忘门层、输出门层的三种矩阵变换,输出预测日的one-hot向量。进一步地,所述预测阶段,根据预测日的one-hot向量得到预测日的日净额所处的子区间,并取该子区间内的随机值作为备付金预测值。进一步地,所述模型训练阶段,迭代若干次对LSTM模型进行训练,使用随机小实数初始化LSTM模型的权重参数(包括输入到隐含层、隐含层到输出、隐含层到隐含层的连接权重U、V和W),应用随机失活进行正则化处理,以tanh非线性函数作为激活函数确定输出,并选取交叉熵作为损失函数,将预测得到one-hot向量与真实日净额对应的one-hot向量进行对比,计算损失,并使用随机梯度下降(StochasticGradientDescent,SGD)与反向传播(BackPropagation,BP)方法相结合寻找使得损失最小的最优权重参数。进一步地,所述模型训练阶段,隐含层个数为5,每个隐含层包含50个神经元,迭代100000次对LSTM模型进行训练。以下对模型训练阶段的各个步骤进行详细说明。步骤一:权重初始化;LSTM模型过程中,权重参数U、V和W需要通过不断更新获取最优值。若网络中的每个神经元计算出相同的输出,则在反向传播过程中,将得到相同的梯度,致使参数U、V和W一致更新,神经元将一直保持对称,影响训练效果。因此,为了得到合适的LSTM模型学习参数,本发明选择了小随机数初始化,即权重参数U、V和W初始值接近于0,且不等于0。以极小的数值进行初始化,使得神经元初始状态随机且不相等的,而后计算出不同的更新,并在梯度下降过程中,将自身转换成整个网络的不同部分,打破对称性。小随机数权重初始化的计算公式如下:W=0.01*np.random.randn(n)*sqrt(2.0/n)其中,np.random是Python中Numpy库中生成随机数的方法,randn函数是基于标准差为的高斯分布来生成随机数,其中n是输入层的神经元数量。根据此计算公式,每个神经元的权重向量都会被初始化为一个随机向量,而这些随机向量又服从一个多变量高斯分布,因此,在输入空间中,所有的神经元的指向都是随机的。步骤二:正则化;为了控制神经网络的学习能力,防止出现过拟合,在前向传播过程中需进行正则化。本发明选择随机失活(Dropout)作为正则化方法。在训练过程中,对完整的神经网络抽样出一部分,基于输入数据更新子网络的参数,让神经元以p的概率被激活;本发明默认设置p为0.7。步骤三:激活函数,LSTM模型需要使用一个非线性函数f确定神经元的输出。常用的激活函数有tanh和ReLU。本发明采用tanh非线性函数进行初始化,tanh将实数值压缩到[-1,1]之间,其输出是零中心的。计算公式如下:tanh(x)=2δ(2x)-1其中,x代表函数输入变量,δ是Sigmoid函数,其计算公式如下:步骤四:SGD与反向传播。模型训练过程中,长短期记忆循环神经网络运行至最后一层后会利用损失函数根据预测结果与真实值之间的误差计算出损失值,反向传播(BP)算法会将此损失值反方向传递给每个神经元,然后每个神经元会采用随机梯度下降(SGD)修正LSTM权重参数U、V和W。在模型训练过程中,不断更新LSTM权重参数U、V和W,使其满足最小化损失条件。SGD是一种迭代求解最小化损失的方法。为了寻找一个函数的局部极小值,SGD会向函数上当前点对应梯度的反方向的规定步长距离点进行迭代搜索。在SGD中,每次迭代不必遍历所有样本,其将采用一个样本来更新参数,参数将沿着负梯度方向更新。反向传播算法使用了批量更新的方法对神经网络的权值和偏置进行更新,其处理步骤如表1所示。损失函数用L来表示,本方法使用交叉熵作为损失函数计算损失,以衡量模型训练的效果,交叉熵的其计算公式如下:其中,N是训练样本数量,on是LSTM模型输出的第n个训练样本的日净额预测值,yn是第n个训练样本的日净额真实值。若on与yn之间的差距越大,则损失L(y,o)越大。有益效果:考虑到备付金序列具有高维、高噪的特点,本发明将备付金序列预测问题转换成时间序列预测问题。另外,考虑到长短期记忆循环神经网络模型,即LSTM模型在时间序列的分类问题上有着良好的表现,且预测一个合理的区间比预测一个精确值更具有实际意义,本发明将备付金预测问题转换成时间序列的分类预测。首先将样本对应的日净额数据进行转化,将其按照取值范围归类,标记上类别标签;然后采用真实银行网点现金交易数据训练LSTM模型,最后将预测日期前若干日的特征向量输入到LSTM模型,预测银行网点备付金需求,相较于目前已有的ARIMA预测方法,本发明充分利用了不同日期属性以及时间序列的依赖性,提出的预测算法能更加充分地挖掘出银行网点备付金之间依赖性,从而解决银行网点备付金预测不断复杂的难题,提高备付金预测准确率和精度,避免出现预测过高或过低的情况。在453家银行网点的模型预测结果表明,相比较已有的ARIMA预测方法,本发明所提出的方法,在预测评价标准MAD(平均绝对误差)、RMSE(均方根误差)、MAPE(平均绝对百分比误差)对比中,明显优于ARIMA预测方法。附图说明图1为基于长短期记忆循环网络的银行网点备付金预测方法流程;图2为某银行网点训练集的日净额分布;图3为基于长短期记忆循环神经网络的银行网点备付金预测模型训练过程;图4为基于长短期记忆循环神经网络的银行网点备付金预测区间与日净额对比图;图5为2015年1月1日至2015年6月9日,银行网点备付金预测值与真实日净额以及ARIMA预测值对比图;图6为2015年4月1日至2015年4月30日,银行网点备付金预测值与真实日净额以及ARIMA预测值对比图;图7为2015年1月1日至2015年6月9日,银行网点备付金预测结果与ARIMA预测值的MAD标准对比图;图8为2015年1月1日至2015年6月9日,银行网点备付金预测结果与ARIMA预测值的RMSE标准对比图;图9为2015年1月1日至2015年6月9日,银行网点备付金预测结果与ARIMA预测值的MAPE标准对比图。具体实施方式本发明系统架构如图1所示,包括数据预处理、模型训练和银行网点备付金预测三部分。在数据预处理阶段,收集银行网点的现金交易记录,并对交易记录进行统计,得到该银行网点的日净额序列。本发明将构建[月份,日期,总存款,总取款,日期属性]的特征向量。针对根据网点日净额分布,计算其平均值和标准差,以99%的置信区间作为预测区间,并将预测区间划分为N_CLASS类,将每条记录标记为one-hot向量。在模型训练阶段,使用的默认参数配置如表1所示。以及通过小随机数进行权重初始化、tanh非线性函数激活、将预测结果与one-hot向量对比,计算交叉熵,使参数在反向传播过程中更快地收敛。表1LSTM预测模型默认配置参数值参数名称默认配置隐含层数量5LSTM模型训练样本天数10隐含层中神经元数量50激活函数Tanh损失函数交叉熵学习速率0.001LSTM模型批处理大小200初始化权重方法小随机数迭代次数100000反向传播算法为:1.对所有的隐含层(2≤l≤L),设ΔW(l)=0,Δb(l)=0,即ΔW(l)和Δb(l)分别为全零矩阵和全零向量;2.Fori=1:m(1)采用反向传播算法,计算各层神经元权值和偏置的梯度矩阵和(2)计算(3)计算3.更新权值和偏置:(1)计算(2)计算其中,m为训练样本的个数。在模型预测阶段,选取前十天的银行现金交易日净额的特征向量,依次输入到LSTM模型中,并在预测模型输出的预测区间中取随机值作为备付金需求预测值。本方法采用真实银行网点现金交易数据进行实验。在预测方法中,由于只考虑了日期属性以及备付金作为时间序列的影响,为银行网点建立预测模型,其配置参数均可调节。本实施例中LSTM预测模型默认配置参数值如表2所示。如图4所示,在某银行网点预测2015年1月1日至2015年6月9日的条件下,基于LSTM的预测模型所给的区间中包含真实日净额的比例为85.0679%。如图5所示,通过在预测区间内取随机值,作为最终备付金需求预测,相较于ARIMA预测方法,LSTM模型预测结果比较贴近真实日净额。如图6所示,LSTM模型预测结果较稳定地模拟了真实日净额的趋势,ARIMA预测结果比较平稳,不能良好地反映真实日净额的趋势。此外,根据已有的时间序列评价标准,本方法对比了LSTM预测方法与ARIMA(AutoregressiveIntegratedMovingAverageModel,自回归移动平均模型)预测方法在MAD(平均绝对误差)、RMSE(均方根误差)、MAPE(平均绝对百分比误差)三项指标上的值。如图7所示,LSTM预测方法的MAD值明显低于ARIMA方法的MAD值,另外,随着分类区间数量的增长,LSTM预测方法的MAD值将会逐渐减小。如图8所示,LSTM预测方法的RMSE值基本上与ARIMA预测方法的RMSE值相等,但随着分类区间数量的增长,LSTM预测方法的RMSE值略有下降。如图9所示,LSTM预测方法的MAPE值明显低于ARIMA方法的MAD值,此外,随着分类区间数量的增长,LSTM预测方法的MAPE值将会逐渐减小,基本上趋近于0。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1