基于BP神经网络的长江流域人口预测研究
式中,m为隐层节点数;n为输入层节点数;t为输出层节点数。经计算并综合考虑隐层的功能,将隐层节点数确定为6。2.3 样本的划分
对经过预处理的数据序列p′(t)根据确定的网络结构划分训练样本和检验样本,具体如下:输入样本集(t-4),p′(t-3),p′(t-2),p′(t-1)];输出样本集t=[p′(t)],其中,t=2001,2000,…,1988。p=[p′
同时选择1988~1998年的数据作为学习样本集,1999~2001年的数据作为检验样本集。由学习样本集对网络进行训练,且利用完成训练的神经网络进行模拟。样本划分结果见表2,第1~第11组为学习样本,第12~第14组为检验样本。2.4 BP网络学习算法的确定
如第1节内容所述,基本的BP算法存在一定的局限,根据文章的需要和不同改进算法的要求,以及Matlab6.5软件中神经网络工具箱提供的数10种学习算法,采用Levenberg-Marquardt数值优化法来实现反传算法,这是学习速度最快的Trainlm算法。2.5 模拟实现及比较分析
1)BP网络的模拟 借助Matlab6.5对表2所列的学习样本和检验样本在对网络进行训练和检验后,得到如图2所示的结果,经过120步训练,网络的均方误差达到7.19801×10-5。
表2 样本划分结果
输入p=[p′(t-4),p′(t-3),p′(t-2),p′(t-1)]
样本组数
1234
学
习样本
567891011
检验样本
121314
(t-4)p′
00000.425700.431580.441100.446300.453540.455130.459290.463020.467300.47127
(t-3)p′
0000.425700.431580.441100.446300.453540.455130.459290.463020.467300.471270.47439
(t-2)p′
000.425700.431580.441100.446300.453540.455130.459290.463020.467300.471270.474390.47743
(t-1)p′
00.425700.431580.441100.446300.453540.455130.459290.463020.467300.471270.474390.477430.47802
输出t(t)p′0.425700.431580.441100.446300.453540.455130.459290.463020.467300.471270.474390.477430.478020.48404
[5]
2)人口预测的实现 网络训练好后,以[p′(1998),(1999),p′(2000),p′(2001)]和[p′(1999),p′(2000),p′
p′(2001),p′(2002)]为输入样本,预测p′(2002)和(2003),得到结果为0.48405和0.48538。将结果还原为p′
48405和48538,即经BP网络预测长江流域2002年和2003年的人口分别为:48405万人和48538万人。
3)预测结果的比较分析 对长江流域1988~2001年的人口数据,借助SPSS软件分别用指数平滑预测、自回归模型、Logistic模型进行预测
[6,7]
,并与BP神经网络预测方法结
图2 借助Matlab6.5的网络训练结果
果和误差进行比较见表3和表4。可见,采用BP神经网络算
法进行预测的精度较其他方法高,能为实际工作提供更准确的信息。