发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于灰色系统模型神经网络的VLR用户数预测方法。
本发明公开了一种基于灰色系统模型神经网络的VLR用户数预测方法,包括如下步骤:
(1)获取一地区若干个月内的VLR用户数以及电信业务中对VLR用户数有影响的5个指标,包括:移动公司市场占有率、移动电话普及率、每月节假日天数、居民可支配收入及常驻人口数;除以上5个指标外,本发明还选取过CPI增长速度、邮电运输总量、GDP、恩格尔系数等多个指标进行计算,经过大量运算发现以上5个指标的相关性最大,相关系数均达到90%以上。
(2)建立灰色系统模型神经网络;
(3)对灰色系统模型神经网络进行训练和测试;
(4)利用通过测试的灰色系统模型神经网络来预测一地市的VLR用户数。
本发明中,步骤(1)中包括对VLR用户数以及5个指标的数据归一化到0和1之间的归一化过程。
本发明中,所述灰色系统模型神经网络包括四层,第一层有1个神经元,第二层有1个神经元,第三层有6个神经元,第四层有1个神经元;
第一层的神经元为月份序列,第二层的神经元为网络参数初始值,第三层6个神经元为第一层月份序列中对应月份的VLR用户数以及对应5个指标,第四层为输出的预测的VLR用户数。
本发明中,第一层次中,对月份序列进行建模,将月份序列数据转化为微分方程;
本发明步骤(2)中灰色系统模型神经网络的传递函数为累加的类指数函数。
本发明中,步骤(3),所述的对神经网络进行训练和测试是,将检测数据分为两部分,前70%~90%的月份数据用来训练网络,后10%~30%的月份数据用来检验网络;对网络反复训练,当预测值与实际值间误差小于0.1时,停止训练,开始预测。
本发明中,所述的神经网络的训练是采用灰色系统算法进行训练。
本发明中,在步骤(4)中,利用通过训练的神经网络进行预测时,先将检测数据归一化到0和+1之间再进行输入,并将网络运算后的输出值进行反归一化后得到VLR用户数的预测值。
本发明以部分信息已知(移动公司市场占有率、移动电话普及率、每月节假日天数、居民可支配收入及常驻人口数这5个已知的和VLR用户数相关性最高的因素)、部分信息未知(VLR用户数)的不确定系统为处理对象,通过对“部分”已知信息的生成、开发,挖掘出有价值的信息,实现对系统未知信息运行行为、演化规律的正确描述和有效预测。
本发明中首先针对时间序列建立灰色模型,将时间序列数据转化为微分方程,利用移动公司市场占有率、移动电话普及率、每月节假日天数、居民可支配收入、常驻人口数及VLR用户数信息,使抽象的模型量化,最后将量化后的方程映射到一个扩展的神经网络中,进而可以在缺乏系统特性知识的情况下预测系统输出。
有益效果:本发明能够在已知信息少,缺乏部分系统特性知识的情况下准确、快速的预测电信业务量,并且能够很好的反映电信业务量的随人口流动等因素变化而出现的波动性。
本发明第一次采用技术手段,使用全自动非人工方法对电信VLR用户数进行有效预测,突破传统人工预测精度低速度慢的缺陷,本发明预测精确度高,可以有效为后期的电信使用情况进行软硬件对应性调整,提高了预测水平和应对能力。
具体实施方式
下面结合实施例对本发明的基于灰色系统模型神经网络的VLR用户数预测方法做出详细说明。
如图1所示,本发明的基于灰色系统模型神经网络的VLR用户数预测方法,包括如下步骤:
(1)获取某地市3年(36个月)的VLR((Visitor Location Register):拜访位置寄存器)用户数作为基础检测数据。
本发明的实施例中获取对VLR用户数有影响的其他因素是:每个月该地市移动公司市场占有率、移动电话普及率、每月节假日天数、居民可支配收入及该地市常驻人口数,以上数据可以从年鉴及运营商市场统计数据表中获取。
在将数据输入矩阵A时,必须先将VLR用户数及对其有影响的5个相关社会、经济指标数值归一化到0和+1之间。该矩阵的第1列到第6列分别为归一化处理后的每个月该地市移动公司市场占有率、移动电话普及率、每月节假日天数、居民可支配收入及该地市常驻人口数及VLR用户数。
(2)建立灰色系统神经网络。
所述的神经网络由四层组成,其中,第一层有1个神经元,第二层有1个神经元,第三层有6个神经元,第四层有1个神经元;第一层的神经元为月份序列,第二层的神经元为网络参数初始值,本实施例选取0.3+1/4π,第三层6个神经元为第一层月份序列中对应月份的VLR用户数以及对应5个指标,第四层为输出的预测电信业务量。所述第三层的神经元的数值先进行归一化处理,然后通过针对时间序列的建模,直接将相应数据转化为微分方程,即:
(y
2,y
3,...,y
n为系统输入参数;y1为系统输出参数;a,b1,b2,...bn-1为微分方程系数)。将上式映射到一个扩展的神经网络中,就得到n个输入参数,1个输出参数的灰色神经网络,网络结构如图1所示。本实施例中灰色系统模型神经网络的传递函数采用累加的类指数函数,该函数为:
其中,Xt(n)为y(1),y(2),...,y(n)的累加值,t为时间段长度,u为
(3)对神经网络进行训练和测试。
所述的对神经网络进行训练和测试是,将连续36个月中每个月该地市移动公司市场占有率,该地市移动电话普及率,节假日因素,该地市居民可支配收入,该地市常驻人口数及该月份的VLR用户数记为一组数据,并将所有检测数据分为两部分,前30个月称为训练样本,后6个月称为检验样本。
将前30个月的训练样本用来训练网络,建立学习机制,即当输入某月的一组数据时,即给出该地市移动公司市场占有率,该地市移动电话普及率,节假日因素,该地市居民可支配收入,该地市常驻人口数及该月份的VLR用户数是,神经网络通过自动运算,会算出一个输出值(下一个月的VLR用户数),比较输出值与实际值之间的误差,,若误差小于指定精度,则学习结束。否则,调整根据误差调整权值和阈值。学习的次数越多,预测的精度越高。经过网络反复训练,当误差小于10%时,停止训练,开始预测。
将另外6个月的检验样本用来检验网络。当网络训练结束后,利用另外6个月的数据来检验网络,看模型是否符合要求。利用神经网络预测另外的6个月社会经济指标所对应的VLR用户数,对照模型预测值与实际测量值间的误差,当神经网络在各组测试数据的预测误差均低于规定水平时即通过测试,可以用于预测工作。此时模型预测值与实际值间的误差为5.6%,如图2所示,远低于10%的要求,通过测试。
在进行训练中,当神经网络在各组测试数据的预测误差均低于规定水平时即通过测试,可以用于预测工作。
(4)利用通过测试的神经网络进行预测。
利用通过测试的神经网络进行预测必须将输入数据归一化到0和-1之间,再输入到通过测试的神经网络中,并将网络运算后的输出进行反归一化,就得到每个月的VLR用户数的预测值。
更具体地说,所述的灰色神经网络的学习流程如下:
步骤1:根据训练数据特征初始化网络结构,初始化参数a、b(之前,选取了少量样本进行初步计算,并根据经验网络初始值a分别选取了π、1/4π、0.3+1/4π、0.5+1/4π进行循环交叉检验后发现网络初始值选取a=0.3+1/4π最接近实际值,网络初始值b1=0.00075a),并根据a,b的值计算u。(本发明令 bn=b(n-1)/(b(n-1)+a)),并将u(n),a,b的值带入累加的类指数函数Z(t)中;
步骤2:通过累加的类指数函数Z(t)的值,计算网络权值w21,w22,…w2n,w31,w32,…,w3n。(w11=a,w21=-y1(0),w22=u1,w23=u2,…w2n=un-1,w31=w32=…=w3n=Z(t)(1+e-at))
步骤3:对每一个输入序列(t,y(t)),t=1,2,3,…,N,计算每层输出。
第一层:a=w11t
第二层:b=f(w11t)=1/(1+e-w11t)
第三层:c1=bw21,c2=y2(t)bw22,c3=y3(t)bw23,…,cn=yn(t)bw2n
第四层:d=w31c1+w32c2+…+w3ncn-Θy1(Θ为第四层中输出节点的阈值,计算公式为:
Θ=(1-e-at)(d-y1(0)))
步骤4:计算网络预测输出与期望输出的误差,并根据误差调整权值和阈值。
第四层误差:δ=d-y1(t)
第三层误差:δ1=δ(1+3e-w11t),δ2=δ(1+e-w11t),…,δn=δ(1+e-w11t)
第二层误差:δn+1=(1-1/(1+e-w11t))(w21δ1+w22δ2+…+w2nδn)/(1+e-w11t)
根据预测误差调整权值。
调整第二层到第三层的连接权值。
w21=-y1(0),w22=w22-μ1δ1b,…,w2n=w2n-μn-1δnb
调整第一层到第二层的连接权值:w11=w11+atδn+1
调整阈值:
步骤5:判断训练是否结束,若否,返回步骤3。
先将网络参数a设定初始值,计算次数设定为100次,然后输入样本进行学习。没学习完一遍,都会比较样本输出结果与实际值之间的误差,并记录下每次的取值,直到计算100次后取误差最小的那次权值,若该权值下误差小于指定精度则说明该预测方法达到要求,可以用来预测。
本发明提供了一种基于灰色系统模型神经网络的VLR用户数预测方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。